作者loteslogin (张三立)
看板Python
标题[问题] 这算是 BUG 吗?
时间Mon Jan 4 10:21:17 2016
>>> x=[[]]*2
>>> x
[[], []]
>>> x[0].append('a')
>>> x[1].append('b')
>>> x
[['a', 'b'], ['a', 'b']]
>>>
与预期的结果 [['a'],['b']] 不同
请问这算是 IDLE 的 BUG 吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 163.27.106.65
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1451874080.A.68A.html
1F:推 painkiller: 不是,你应该用 x = [[] for i in range(2)] 01/04 10:43
2F:→ painkiller: [[]]*2得到的是两个指向同一个位址的[] 01/04 10:44
4F:推 Falldog: 不是bug 这就像是a = []; x=a*2; # x[0]==x[1]==a 01/05 07:53
5F:→ uranusjr: 楼上我知道你想说什麽, 但你的例子完全不对, 应该用 is 01/05 12:15