繁体   English   中英

需要在python中以不同格式从现有字典创建新字典

[英]Need to create a new dictionary from an existing dictionary in a different format in python

我原来的字典是dict1。

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

我需要输出如下

{'Randy':['Input.txt','Output.txt'],'Stan':['Code.py']}

整洁的Python技能:

dict1 = {'Input.txt':'Randy','Code.py':'Stan','Output.txt':'Randy'}
out = {}
for k, v in dict1.items():
    out.setdefault(v, []).append(k)

给出预期的:

{'Randy': ['Input.txt', 'Output.txt'], 'Stan': ['Code.py']}

因此,我们通过解包从字典.items()方法返回的元组来迭代同步的键值对。 对于每一对,我们将值(即'Randy''Stan''Randy' )设置为输出字典中新列表的关键字(如果还没有列表) - 这可以通过setdefault方法巧妙地完成。

因为setdefault的返回值要么是我们刚创建的新列表,要么是已填充的列表(在'Output.txt'对的情况下)以及列表可变的事实(对它们的更改会影响对它们的所有引用) ,我们可以直接将我们的密钥( 'Input.txt''Code.py''Output.txt''Output.txt'到返回的内容中, 无论是新的还是旧的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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