Python 在列表的列表中查找字符串

Python 在列表的列表中查找字符串,python,python-2.7,Python,Python 2.7,在列表中搜索有什么问题?输出应该是它就在那里 mylist = [['a','b','c'],['d','e','f']] if 'a' in mylist: print "It's there" else: print "it's not there" “a”当然不在您的列表中。您的列表有两个元素,每个元素都是一个列表。要在列表中包含的每个列表中查找“a”,您需要将列表展平为一个列表并在其中进行搜索。当然,“a”不在您的列表中。您的列表有两个元素,每个元素都是一个列表。要在列

在列表中搜索有什么问题?输出应该是
它就在那里

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

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

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

将嵌套列表链接起来,然后按照通常的方式执行:

'a' in itertools.chain.from_iterable(mylist)
或者,您可以检查列表中的每个项目:

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

链接嵌套列表,并按照您通常的方式执行:

'a' in itertools.chain.from_iterable(mylist)
或者,您可以检查列表中的每个项目:

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

'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

[]

不在
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

[]

'a'
不在
mylist
中,它在
mylist[0]
@jornsharpe中有意义,但是我如何签入mylist的每个索引呢?你可以使用
任何
,或者将其展平到单个列表。
'a'
不在
mylist
中,它在
mylist[0]中
@jornsharpe很有意义,但是我如何签入mylist的每个索引呢?您可以使用
任何
,或者将其展平到单个列表。有趣的是(对我来说),根据Python 2.7上的
timeit
,这比@inspectorG4dget的答案快大约3倍。不过,我认为his具有更大的优化潜力,因为
any()
在语义上不需要按顺序操作,而
itertools.chain
是。itertools的一些速度有所提高,因为它的一部分是用C实现的,而不是(对我而言)通过python单独运行,根据Python2.7上的
timeit
,它的运行速度大约是@inspectorG4dget答案的3倍。不过,我认为his具有更大的优化潜力,因为
any()
在语义上不需要按顺序操作,而
itertools.chain
is.itertools的速度有所提高,因为它的一部分是用C实现的,而不是通过python运行的