考虑到'1'、'2'、'3'、'4'是索引,其他的都是Python中字典的值,我试图排除重复值,并在发现重复项时增加数量字段。e、 g.:
a = {'1': {'name': 'Blue', 'qty': '1', 'sub': ['sky', 'ethernet cable']},
'2': {'name': 'Blue', 'qty': '1', 'sub': ['sky', 'ethernet cable']},
'3': {'name': 'Green', 'qty': '1', 'sub': []},
'4': {'name': 'Blue', 'qty': '1', 'sub': ['sea']}}
b = {'1': {'name': 'Blue', 'qty': '2', 'sub': ['sky', 'ethernet cable']},
'2': {'name': 'Green', 'qty': '1', 'sub': []},
'3': {'name': 'Blue', 'qty': '1', 'sub': ['sea']}}
我可以排除重复项,但我很难增加“qty”字段:
b = {}
for k,v in a.iteritems():
if v not in b.values():
b[k] = v
注意:我之前发布了这个问题,但是忘了添加字典可以有“sub”字段,这是一个列表。另外,不要介意奇怪的字符串索引。你知道吗
也许你可以试着用这样的计数器:
首先,将原始dict
'name'
和'sub'
键转换为逗号分隔的字符串,这样我们就可以使用set()
:这是回报
然后使用嵌套的dict和list理解,如下所示:
相关问题 更多 >
编程相关推荐