如何在python中使用`issubset`作为字典

时间:2016-01-09 04:02:30

标签: python python-2.7

我有一个字典B,并列出了A。如果Bsubset A.values(),我希望从A={1: 'jendela', 2: 'jendela', 3: 'kursi', 4: 'meja', 5: 'pintu', 6: 'payung'} B=set(['jendela','kursi']) c=[[1,3],[2,3]] >> B.issubset(A.values()) >> True 字典获取密钥?

C

但我如何获得列表C。如果我有字典A并列出B

,则set "remotever=" FOR /F "skip=1 tokens=*" %%A in ('wmic /node:%hostname% OS get caption^|more') DO if not defined remotever set "remotever=%%A" echo %remotever:~0,-1% 是输出示例

1 个答案:

答案 0 :(得分:3)

如果我理解正确,您希望在字典A中生成所有键集的列表,该列表将查找集B中的所有值。

您需要的第一件事是列出您需要的每个值的键。为此,我认为你真的想要反转你的A映射。不是从数字映射到字符串,而是从字符串映射到数字列表:

A = {1: 'jendela', 2: 'jendela', 3: 'kursi', 4: 'meja', 5: 'pintu', 6: 'payung'}

A_reversed = collections.defaultdict(list)
for number, string in A.items():
    A_reversed[string].append(number)

现在,使用itertools.product将所需列表组合在一起:

result_gen = itertools.product(*(A_reversed[string] for string in B))

此结果是一个生成器,如果您需要列表,请使用list(result_gen)(或只在上面的行中包含list次调用)。

如果B中的某个值未显示为A中的值,则结果为空。