我有一个字典B
,并列出了A
。如果B
是subset 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%
是输出示例
答案 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
中的值,则结果为空。