在列表列表中查找字符串

时间:2015-03-18 19:24:30

标签: python python-2.7

我在列表列表中的搜索有什么问题?输出应为It's there

mylist = [['a','b','c'],['d','e','f']]
if 'a' in mylist:
    print "It's there"
else:
    print "it's not there"

3 个答案:

答案 0 :(得分:3)

链接嵌套列表并按照惯例进行操作:

'a' in itertools.chain.from_iterable(mylist)

或者,您可以检查列表中的每个项目:

any('a' in item for item in mylist)

答案 1 :(得分:2)

'a'不在mylist;相反,它位于mylist中包含的一个列表中:

In [240]: for sublist in mylist:
   .....:     if 'a' in sublist:
   .....:         print("'a' exists in", sublist)
   .....:         
'a' exists in ['a', 'b', 'c']

所以,如果你想检查一个元素是否存在于许多子列表的任何中:

In [241]: any('a' in sublist for sublist in mylist)
Out[241]: True

[More on any]

答案 2 :(得分:0)

'一个'当然不在你的列表中。您的列表有两个元素,每个元素都是一个列表。寻找' a'在列表中包含的每个列表中,您需要将列表展平为一个列表并在其中进行搜索。