簡體   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