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

如何测试嵌套Python列表是否包含给定字符串,python,python-3.x,Python,Python 3.x,我有一个嵌套的Python字符串列表,如下所示: l = [['a', 'b', 'c'], ['d', 'e', 'f']] 我想快速测试给定字符串是否等于任何子列表中的任何字符串。我可以编写一个函数来平展列表,但测试需要在程序的时间关键部分进行。有没有一种更快或更优雅的方法可以做到这一点?你不能避免在这里循环和扫描元素;但至少可以避免扫描所有列表,并将扫描每个子列表的任务委托给Python C代码 使用测试生成器表达式中的每个子列表: any(search in sublist for s

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

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

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

你不能避免在这里循环和扫描元素;但至少可以避免扫描所有列表,并将扫描每个子列表的任务委托给Python C代码

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

any(search in sublist for sublist in l)

any()
如果找到
True
值(例如,当
在子列表中搜索时发现匹配项),则会立即停止迭代生成器表达式。

迭代列表?@AshwiniChaudhary:我应该删除吗?这是最好的解决方案,因为它会短路。最坏的情况是O(N),但根据问题的定义,它必须是O(N)。充其量,你会遇到短路,提早退出。