gpt4 book ai didi

Python:如何修改 for 循环中交替键的字典值?

转载 作者:太空宇宙 更新时间:2023-11-03 13:05:12 33 4
gpt4 key购买 nike

我是 Python(和编程)的新手。

我想通过交替字典的键来修改 for 循环中的字典。我写了下面的代码,但是没有成功:

#coding: utf-8
dict1 = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
dict2 = dict.fromkeys(dict1.values(),[])

for key in dict2:
if key == 'value1':
dict2[key].extend(['test1', 'test2'])
elif key == 'value2':
dict2[key].extend(['test3', 'test4'])
elif key == 'value3':
dict2[key].extend(['test5', 'test6'])

print (dict2['value1'])
print (dict2['value3'])

我期望的结果是:

 ['test5', 'test6']
['test1', 'test2']

但我实际上得到了:

 ['test5', 'test6', 'test3', 'test4', 'test1', 'test2']
['test5', 'test6', 'test3', 'test4', 'test1', 'test2']

我想问题可能出在我使用“dict.fromkeys”从另一本字典制作字典,但我不明白为什么它是有问题的,即使是这样。

感谢您的关注。期待您的建议。

最佳答案

dict2 的所有值实际上都是同一个列表实例,因为将 [] 传递给 dict.fromkeys() 只会创建一个列表实例.尝试

dict2 = {v: [] for v in dict1.values()}

关于Python:如何修改 for 循环中交替键的字典值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5281834/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com