假设我有一个列表b=['m','NN']
和一个字典dict={'b':['NN','m','big']}
,如果列表b
的元素在{中,我想使用该函数来检索键'b' {1}}
(所以我们假设使用dict[b]
。
现在,如果[k for k,v in dict.items()]
中的元素未按b
中的元素排序并假设我无法更改b列表中的顺序,我该怎么办?
谢谢!
答案 0 :(得分:4)
我不确定我明白你在问什么,但如果你所追求的是字典d
中的键列表,其中的值是列表b
的超集,那么你可以使用类似的东西:
b=['m','NN']
d={'b':['NN','m','big'], 'a':['jj','r']}
[k for k,v in d.items() if set(b) <= set(v)]
(我更改了示例词典的名称,因为dict
是一个内置类。)
答案 1 :(得分:2)
你可以这样做:
[k for k, v in dict.items() if all((x in v) for x in b)]
例如:
>>> b=['m','NN']
>>> dict={'b':['NN','m','big'], 'a':['NN', 'q']}
>>> [k for k, v in dict.items() if all((x in v) for x in b)]
['b']
(请注意,为字典dict
命名是个坏主意,因为dict
是数据类型的名称。)