标题:初学,一个字典列表的问题
只看楼主
acll
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2019-3-23
结帖率:0
已结贴  问题点数:20 回复次数:2 
初学,一个字典列表的问题
newusers = []
users = {
    'XXX': [] ,
    'YYY': [],
    }
for i in range(110,112):
    print(i)   
    users['XXX'] = i
    users['YYY'] = i + 100
    print('this is users', users, )
    print('this is newusers befor appended', str(i), newusers)
    newusers.append(users)
    print('this newusers appended ', str(i), newusers)
    print('\n')
执行结果如下
110
this is users {'XXX': 110, 'YYY': 210}
this is newusers befor appended 110 []
this newusers appended  110 [{'XXX': 110, 'YYY': 210}]


111
this is users {'XXX': 111, 'YYY': 211}
this is newusers befor appended 111 [{'XXX': 111, 'YYY': 211}]      这里为什么不是[{'XXX': 110, 'YYY': 210}] ?
this newusers appended  111 [{'XXX': 111, 'YYY': 211}, {'XXX': 111, 'YYY': 211}]  我期待的结果是 [{'XXX': 110, 'YYY': 210}, {'XXX': 111, 'YYY': 211}]
  那里错了 ?


[此贴子已经被作者于2019-3-23 11:11编辑过]

搜索更多相关主题的帖子: 字典 列表 users print this 
2019-03-23 11:08
TysonKoothra
Rank: 5Rank: 5
等 级:职业侠客
威 望:7
帖 子:71
专家分:374
注 册:2018-10-21
得分:20 
# newusers.append(users) 这一句用下一句代替
newusers.append(users.copy())
2019-03-23 17:21
acll
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2019-3-23
得分:0 
谢谢,明白了。原来append和赋值是一样的。
还明白了浅拷贝和深拷贝。
2019-03-23 18:18



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-493738-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.115165 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved