取字典元素创建另一个字典 [英] take elements of dictionary to create another dictionary
问题描述
我想使用这个表单的字典
a = {'vladimirputin':{'milk':2.87, '欧芹':1.33,'面包':0.66},'barakobama':{'parsley':0.76,'sugar':1.98,'crisps':1.09,'potatoes':2.67,'cereal':9.21}}
d = {}
p = {}
a = {'vladimirputin':{'milk':2.87,'parsley':1.33,'bread ':0.66},'barakobama':{'parsley':0.76,'sugar':1.98,'crisps':1.09,'potatoes':2.67,'cereal':9.21}}
在[key]中的商品:
price = a [key] [product]
d [key] = price
p [product] = d
print(p )
并将其转换为此
p = {'milk':{'vladimirputin':2.87},'谷物':{'barakobama':9.21},'bread':{'vladimirputin':0.66},'土豆':{'barakobama':2.67},'糖':{'barakobama':1.98},'欧芹':{'vladimirpu锡':1.33,'barakobama':0.76},'crisps':{'barakobama':1.09}}。
你可以这样做:
a = {'vladimirputin':{'milk':2.87,'parsley':1.33,'bread':0.66},'barakobama' 欧芹:0.76,糖:1.98,薯片:1.09,土豆:2.67,谷物:9.21}}
b = {}
:
在[prez]中的食物:
如果食物不在b:
b [food] = {prez:a [prez] [food]}
else:
b [food] [prez] = a [prez] [food]
p>
{'bread':{'vladimirputin':0.66},
pre>
'cereal':{'barakobama':9.21} ,
'crisps':{'barakobama':1.09},
'milk':{'vladimirputin':2.87},
'parsley':{'barakobama':0.76,'vladimirputin ':1.33},
'potatoes':{'barakobama':2.67},
'sugar':{'barakobama':1.98}}
说明on:
您的输入字典
a
将总统姓名作为关键字。输出字典需要食物作为关键。
如果食物不在b 中,则表示
检查特定食品已经是输出字典的关键。如果不是,它将创建一个新的字典作为值。像
'sugar'的情况:{'barakobama':1.98}
如果密钥已经存在在输出字典中,它获取它并添加另一个键值对
像在'parsley'的情况下:{'barakobama':0.76,'vladimirputin':1.33} code>
您可以通过在代码中添加print语句并检查输出字典的值来了解如何编写进度。 在每一步。
I want to take a dictionary with this form
a={'vladimirputin':{'milk': 2.87, 'parsley': 1.33, 'bread': 0.66},'barakobama':{'parsley': 0.76, 'sugar': 1.98, 'crisps': 1.09,'potatoes': 2.67, 'cereal': 9.21}} d={} p={} a={'vladimirputin': {'milk': 2.87, 'parsley': 1.33, 'bread': 0.66}, 'barakobama':{'parsley': 0.76, 'sugar': 1.98, 'crisps': 1.09, 'potatoes': 2.67, 'cereal': 9.21}} for key in a: for product in a[key]: price=a[key][product] d[key]=price p[product]=d print(p)
and transform it into this
p={'milk': {'vladimirputin': 2.87}, 'cereal': {'barakobama': 9.21},'bread': {'vladimirputin': 0.66}, 'potatoes': {'barakobama': 2.67},'sugar': {'barakobama': 1.98}, 'parsley': {'vladimirputin': 1.33,'barakobama': 0.76}, 'crisps': {'barakobama': 1.09}}.
解决方案You could do this:
a = {'vladimirputin': {'milk': 2.87, 'parsley': 1.33, 'bread': 0.66}, 'barakobama':{'parsley': 0.76, 'sugar': 1.98, 'crisps': 1.09, 'potatoes': 2.67, 'cereal': 9.21}} b = {} for prez in a: for food in a[prez]: if food not in b: b[food] = {prez: a[prez][food]} else: b[food][prez] = a[prez][food]
This gives:
{'bread': {'vladimirputin': 0.66}, 'cereal': {'barakobama': 9.21}, 'crisps': {'barakobama': 1.09}, 'milk': {'vladimirputin': 2.87}, 'parsley': {'barakobama': 0.76, 'vladimirputin': 1.33}, 'potatoes': {'barakobama': 2.67}, 'sugar': {'barakobama': 1.98}}
Explanation:
Your input dictionary
a
has president names as keys. The output dictionary needs food items as keys.The statement
if food not in b
checks if a particular food item is already a key in the output dictionary. If it is not, it will create a new dictionary as the value. Like in the case of'sugar': {'barakobama': 1.98}
If the key is already present in the output dictionary, it gets it and adds another key value pair to it like in the case of
'parsley': {'barakobama': 0.76, 'vladimirputin': 1.33}
You can find out how to code progresses by adding print statements in the code and checking the value of the output dictionary
b
at each step.这篇关于取字典元素创建另一个字典的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!