如何测试嵌套的 Python 列表是否包含给定的字符串
How to test if a nested Python list contains a given string
我有一个 Python 字符串的嵌套列表,如下所示:
l = [['a', 'b', 'c'], ['d', 'e', 'f']]
我想快速测试给定字符串是否等于任何子列表中的任何字符串。我可以编写一个函数来展平列表,但测试需要在程序的时间关键部分进行。有没有更快或更优雅的方法来做到这一点?
您无法避免在此处循环和扫描元素;但你至少可以避免扫描所有列表,并将扫描每个子列表的任务委托给 Python C 代码。
使用 any()
function 测试生成器表达式中的每个子列表:
any(search in sublist for sublist in l)
any()
将在找到 True
值时停止迭代生成器表达式(例如,当 search in sublist
找到匹配项时)。
我有一个 Python 字符串的嵌套列表,如下所示:
l = [['a', 'b', 'c'], ['d', 'e', 'f']]
我想快速测试给定字符串是否等于任何子列表中的任何字符串。我可以编写一个函数来展平列表,但测试需要在程序的时间关键部分进行。有没有更快或更优雅的方法来做到这一点?
您无法避免在此处循环和扫描元素;但你至少可以避免扫描所有列表,并将扫描每个子列表的任务委托给 Python C 代码。
使用 any()
function 测试生成器表达式中的每个子列表:
any(search in sublist for sublist in l)
any()
将在找到 True
值时停止迭代生成器表达式(例如,当 search in sublist
找到匹配项时)。