可能重複:
Two separate python lists acting as one改變在列表中的字典一個Python列表改變所有列表
此代碼創建列表的字典,按鍵在usens
之中。該名單是完全0
小號
usens = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 14, 110, 111, 112, 113, 114,
115, 116, 117, 118, 119, 302, 303, 306, 307, 308, 370, 371, 500,
501, 1000, 1010, 1020, 1100, 1200, 1201, 1202, 2000, 2001, 2002
]
empty = [[0]*length]*len(usens)
data = dict(zip(usens, empty))
pprint.pprint(data, indent=5)
data[0][0] += 1
pprint.pprint(data, indent=5)
第一個漂亮的打印返回預期(Blurb的刪除):
{0: [0, 0, 0, 0, 0],
1: [0, 0, 0, 0, 0],
2: [0, 0, 0, 0, 0],
3: [0, 0, 0, 0, 0],
4: [0, 0, 0, 0, 0],
5: [0, 0, 0, 0, 0],
.....
2001: [0, 0, 0, 0, 0],
2002: [0, 0, 0, 0, 0]}
然後我做到這一點:data[0][0] += 1
,預計第一個列表(索引0
),以從1
開始,但沒有別的改變。
然而,所有的名單已被修改:
{0: [1, 0, 0, 0, 0],
1: [1, 0, 0, 0, 0],
2: [1, 0, 0, 0, 0],
3: [1, 0, 0, 0, 0],
4: [1, 0, 0, 0, 0],
.....
2001: [1, 0, 0, 0, 0],
2002: [1, 0, 0, 0, 0]}
爲什麼,我怎樣才能使它所以只有一個列表被修改?
[兩個單獨的Python列表作爲一個]的可能的重複](http://stackoverflow.com/questions/9969609/two-separate-python-lists-acting-as-one),也見[另一個列表混淆謎題](http://stackoverflow.com/questions/8997559), –