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

Python 检查子列表中的值并返回正确的子列表,python,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]。然而,我真的不知道怎么做。 我尝试了

我有以下清单:

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],但它不起作用,并告诉我我没有定义。我该怎么办?

我想你想要这样的东西

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']

您也可以使用过滤器完成该任务

>>> 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']

嵌套列表是否始终处于相同的(第0行)位置?是的,它们始终处于相同的位置我不明白为什么,但当我在python tutor中尝试此代码时,它给了我以下错误:SyntaxError:无效语法(,第8行)@loumi它工作正常。检查代码中的错误。好的,我只是检查了它在python 2.7中的工作情况,而不是在3.3中。我的错