【发布时间】:2018-11-16 19:45:28
【问题描述】:
假设一个字典的键是元组:
D = {
('a','b') : 1,
('x','y','z') : 2
}
如何将每个元组键拆分为具有相同值的单独键:
N = {
'a' : 1, 'b' : 1,
'x' : 2, 'y' : 2, 'z' : 2
}
在单个字典理解中。我已经起草了以下行,但我想知道是否可以缩短它并且不创建与键元组长度相同的代理值列表。
N = { k:v for s in ( zip(keys,[value]*len(keys)) for keys,value in D.items() ) for k,v in s }
【问题讨论】:
-
(请注意,要明确定义此问题,元组键必须成对不相交。)
标签: python dictionary key