繁体   English   中英

如何更改 python 中的字典格式?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM