如何使用python dict切换值和键?

Lui*_*uis 4 python

我的输入是:

files = {
    'Input.txt': 'Randy',
    'Code.py': 'Stan',
    'Output.txt': 'Randy'
} 
Run Code Online (Sandbox Code Playgroud)

我希望输出为:

{'Randy':['Input.txt','Output.txt'], 'Stan':['Code.py']}
Run Code Online (Sandbox Code Playgroud)

基本上,这是此切换键和列表字典中的值的另一个方向

这是我尝试的:

dictresult= {}
for key,value in files.items():
     dictresult[key]=value
     dictresult[value].append(key)
Run Code Online (Sandbox Code Playgroud)

但这是行不通的。我懂了KeyError: 'Randy'

Fil*_*ski 5

这是一个简单的方法,我们在迭代keysvalues你原来的字典中files,并为每个值追加到它与该值对应的所有密钥创建列表。

files = {
    'Input.txt': 'Randy',
    'Code.py': 'Stan',
    'Output.txt': 'Randy'
}

dictresult= {}

for k, v in files.items():
    if v not in dictresult:
        dictresult[v] = [k]
    else:
        dictresult[v].append(k)

print(dictresult) # -> {'Randy': ['Output.txt', 'Input.txt'], 'Stan': ['Code.py']}
Run Code Online (Sandbox Code Playgroud)