带有dict的Python列表应该具有相同的键

use*_*679 0 python

我希望my_list应该有一个具有相同键但具有多个值的dict

my_list = []
my_dict = {}
old_list = ['1','2','3','4','5']
for i in old_list:
    my_dict['Cidr'] = i
    my_list.append(my_dict)
print(my_list)
Run Code Online (Sandbox Code Playgroud)

输出:

[{'Cidr': '5'}, {'Cidr': '5'}, {'Cidr': '5'}, {'Cidr': '5'}, {'Cidr': '5'}]
Run Code Online (Sandbox Code Playgroud)

预期产量应为:

[{'Cidr': '1'}, {'Cidr': '2'}, {'Cidr': '3'}, {'Cidr': '4'}, {'Cidr': '5'}]
Run Code Online (Sandbox Code Playgroud)

Wil*_*son 5

你的dict变异了 - 你只有一个dict和每个循环你只需改变键'Cidr'的值.该数组包含对同一个dict的5个引用.

你需要做的是每次循环时创建一个新的dict:

my_list = []
old_list = ['1','2','3','4','5']
for i in old_list:
    my_dict = {}
    my_dict['Cidr'] = i
    my_list.append(my_dict)
print(my_list)
Run Code Online (Sandbox Code Playgroud)

这样,数组中的每个元素都将拥有自己的字典.