我尝试在列表中找到一些字符串,但是由于单词顺序而出现问题。
list = ['a b c d', 'e f g', 'h i j k']
str = 'e g'
我需要在列表中找到第二项并将其输出。
您可以使用组合any()
和all()
检查存在的一行:
>>> my_list = ['a b c d', 'e f g', 'h i j k']
>>> my_str = 'e g'
>>> any(all(s in sub_list for s in my_str.split()) for sub_list in my_list)
True
在这里,上述表达式将返回True
/,False
具体取决于列表中是否包含字符串中的char。
也让该子列表作为返回值的获取,你可以跳过上面修改的表达any()
与列表理解为:
>>> [sub_list for sub_list in my_list if all(s in sub_list for s in my_str.split())]
['e f g']
它将返回包含字符的字符串列表。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句