我的输入是:
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'
这是一个简单的方法,我们在迭代keys和values你原来的字典中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)
| 归档时间: |
|
| 查看次数: |
184 次 |
| 最近记录: |