首页 新闻 搜索 专区 学院

为什么列表中是十个{"user":9}

0
[待解决问题]

data = {}
data_list = []
for i in range(10):
data['user'] = i
data_list.append(data)
print(data_list)

FCB-Messi的主页 FCB-Messi | 菜鸟二级 | 园豆:212
提问于:2021-01-30 20:39
< >
分享
所有回答(3)
0
data = {} #从始至终都只有这一个字典
data_list = []
for i in range(10):
    data['user'] = i # 这里修改了user的值
    data_list.append(data)
print(data_list)
拓拓 | 园豆:1043 (小虾三级) | 2021-02-01 09:14
0
#你这样就不一样的,
#这个涉及到数据类型可变与不可变数据类型,i指向的内存地址是同一个,你把它定义成dict就指向不同的内存地址
data = {} #从始至终都只有这一个字典
data_list = []
for i in range(10):
    new_dict = {}
    new_dict['user'] =i 
    data_list.append(new_dict)
print(data_list)
小小咸鱼YwY | 园豆:3182 (老鸟四级) | 2021-02-01 09:51
0

data['user'] 是个引用, 循环内一直在改变这个引用的值, 每循环一次data_list内的data['user']都是指向当时的i,
到最后就是9了

ABeen | 园豆:251 (菜鸟二级) | 2021-03-08 16:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册