[英]How to change dictionary format in python?
我需要将 dict { name: department } 转换为 { department: [ name ] } 并在转换后打印所有名称,但它只打印一个,这里有什么问题?
我需要使用字典理解方法。
试过这个,但它没有按预期工作:
orig_dict = {'Tom': 'HR', 'Ted': 'IT', 'Ken': \
'Marketing', 'Jason': 'Marketing', 'Jesica': 'IT', 'Margo': 'IT', 'Margo': 'HR'}
new_dict = {value: [key] for key, value in orig_dict.items()}
it_names = new_dict['IT']
print(it_names)
您似乎希望值成为新字典中的键,而值成为列表。 如果是这样,那么:
orig_dict = {'Tom': 'HR', 'Ted': 'IT', 'Ken': 'Marketing', 'Jason': 'Marketing', 'Jesica': 'IT', 'Margo': 'IT', 'Margo': 'HR'}
new_dict = {}
for k, v in orig_dict.items():
new_dict.setdefault(v, []).append(k)
print(new_dict)
Output:
{'HR': ['Tom', 'Margo'], 'IT': ['Ted', 'Jesica'], 'Marketing': ['Ken', 'Jason']}
完整代码
old_dict = {'Tom': 'HR', 'Ted': 'IT', 'Ken': 'Marketing',
'Jason': 'Marketing', 'Jesica': 'IT', 'Margo': 'IT', 'Margo': 'HR'}
# Printing original dictionary
print("Original dictionary is : ")
print(old_dict)
print()
new_dict = {}
for key, value in old_dict.items():
if value in new_dict:
new_dict[value].append(key)
else:
new_dict[value] = [key]
# Printing new dictionary after swapping
# keys and values
print("Dictionary after swapping is : ")
print("keys: values")
for i in new_dict:
print(i, " :", new_dict[i])
it_names = new_dict['IT']
print(it_names)
Output
Original dictionary is :
{'Tom': 'HR', 'Ted': 'IT', 'Ken': 'Marketing', 'Jason': 'Marketing', 'Jesica': 'IT', 'Margo': 'HR'}
Dictionary after swapping is :
keys: values
HR : ['Tom', 'Margo']
IT : ['Ted', 'Jesica']
Marketing : ['Ken', 'Jason']
['Ted', 'Jesica']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.