我想从另一个列表中的列表中提取一个数字,我该怎么做?

时间:2018-02-10 14:29:22

标签: python python-2.7

这是我的清单

ab = [[1,2,3],[1,4,6],[5,86,3],[9,8,7],[12,98,13]]

我想检查一个号码是否在该列表中

sa= 5

如果它存在,我想进行更改(例如删除它)并变为:

ad = [[1,2,3],[1,4,6],[86,3],[9,8,7],[12,98,13]] 

这是我的实际计划:

import random

lista=[]
def fun():
    for i in range(1,80):
        lista.insert(i,i)
    return lista

#dimiourgia pexton me 5 ari8mous alla xoris onoma
pextes=[]
for i in range (1,100):
    lista=[]
    fun()
    fivenum=[]
    for j in range(1,5):
        pick=(random.choice(lista))
        lista.remove(pick)
        fivenum.insert(j,pick)
    pextes.insert(i,fivenum)
print pextes

lista=[]
fun()
for i in range(1,80):
    lucknum=(random.choice(lista))
    lista.remove(lucknum)
    for j in range(1,100):
        steal=lista[j]
        for k in range(1,5):
            if lucknum in lista[j,k]:
                print "yes!!!!"
            else:
                print "hmmmmmm"

即使在列表中的搜索中我也被卡住了。

1 个答案:

答案 0 :(得分:2)

您可以使用嵌套列表解析:

ab = [[1,2,3],[1,4,6],[5,86,3],[9,8,7],[12,98,13]]
sa= 5
new_ab = [[b for b in i if b != sa] for i in ab]

输出:

[[1, 2, 3], [1, 4, 6], [86, 3], [9, 8, 7], [12, 98, 13]]

或者,filter可以与lambda函数一起使用:

new_ab = [filter(lambda x:x != sa, i) for i in ab]