检查子列表中的值并返回正确的子列表

时间:2014-10-15 11:31:36

标签: python

我有以下列表:

list1 = [[1,1],info11,info21]
list2 = [[2,1],info12,info22]
list3 = [list1,list2]
list4 = [1,1]

然后此函数检查list4是否在list3

的子列表中
if any(list4 in i for i in list3):
    #Do something
else:
    #Do something

我想要做的是打印[info11,info21]。但是,我真的不知道该怎么做。 我尝试了list3 [i],但它没有用,告诉我我是未定义的。我该怎么办?

2 个答案:

答案 0 :(得分:1)

我想你想要这样的东西。

list1 = [[1,1],'info11','info21']
list2 = [[2,1],'info12','info22']
list3 = [list1,list2]
list4 = [1,1]

for i in list3:
    if list4 in i:
        print i[1:]

输出将是: - ['info11','info21']

答案 1 :(得分:0)

您也可以使用过滤器执行该任务

>>> list1 = [[1,1],"info11","info21"]
>>> list2 = [[2,1],"info12","info22"]
>>> list3 = [list1,list2]
>>> list4 = [1,1]
>>> filt_list = filter(lambda sublist:list4 in sublist,list3)
[[[1, 1], 'info11', 'info21']]

这会从不需要的列表中过滤嵌套列表。现在取决于您是否可以安全地说您只有一个匹配列表。如果是这样,只需从列表中取出第一个元素并使用切片表示法从第1个元素开始获取所有元素

>>> print filt_list[0][1:]
['info11', 'info21']