如何测试嵌套的Python列表是否包含给定的字符串

时间:2015-01-14 21:02:18

标签: python python-3.x

我有一个嵌套的Python字符串列表,如下所示:

l = [['a', 'b', 'c'], ['d', 'e', 'f']]

我想快速测试一个给定的字符串是否等于任何子列表中的任何字符串。我可以编写一个函数来展平列表,但测试需要在我的程序的时间关键部分进行。是否有更快或更优雅的方式来做到这一点?

1 个答案:

答案 0 :(得分:7)

您无法在此处循环和扫描元素;但是你至少可以避免扫描所有列表,并将扫描每个子列表的任务委托给Python C代码。

使用any() function测试生成器表达式中的每个子列表:

any(search in sublist for sublist in l)
如果找到any()值(例如True找到匹配项时),

search in sublist将停止迭代生成器表达式。