如何从包含另一个列表中的关键字的嵌套列表中找到所有列表
Posted
技术标签:
【中文标题】如何从包含另一个列表中的关键字的嵌套列表中找到所有列表【英文标题】:How can i find all the lists from a nested list that contains a keyword from another list 【发布时间】:2020-01-22 22:03:02 【问题描述】:我找不到从包含另一个列表中的单词的嵌套列表中获取所有所需列表的方法。我的嵌套列表是一袋来自文本的单词。
这是我的嵌套列表的 sn-p :
[['what',
'selection',
'in',
'dhaka'],
['emergency',
'donors',
'in',
'kotwali',
'posts'],
['the',
'threat',
'monsoon',
'progresses',
'hitting',
]
这是我想要比较/检查的列表中的一个 sn-p (comparable_lst
):
['dhaka',
'kotwali',
'khilkhet',
'khilgaon',
'demra',
'turag']
我试过了
[i for e in bag_of_words for i in comparable_lst if e in i]
我的预期结果是:
[['what',
'selection',
'in',
'dhaka'],
['emergency',
'donors',
'in',
'dhaka',
'posts']]
由于dhaka
和kotwali
存在于第一个两个列表以及comparable_lst
中
【问题讨论】:
【参考方案1】:您可以使用简单的列表推导:
nested_lists = [['what',
'selection',
'in',
'dhaka'],
['emergency',
'donors',
'in',
'kotwali',
'posts'],
['the',
'threat',
'monsoon',
'progresses',
'hitting',
]]
words = ['dhaka',
'kotwali',
'khilkhet',
'khilgaon',
'demra',
'turag']
want = list(l for l in nested_lists if any(w in l for w in words))
print(want)
输出:
[['what', 'selection', 'in', 'dhaka'], ['emergency', 'donors', 'in', 'kotwali', 'posts']]
使用any
函数确定words
中的任何值是否存在于nested_lists
中
【讨论】:
以上是关于如何从包含另一个列表中的关键字的嵌套列表中找到所有列表的主要内容,如果未能解决你的问题,请参考以下文章
如何正确地将 JSON 字符串反序列化为包含另一个类的嵌套列表的类