亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python初始化列表

Python初始化列表

江戶川亂折騰 2019-07-10 15:49:47
Python初始化列表我打算初始化一個長度為n的列表。x = [[]] * n然而,這以某種方式將列表鏈接在一起。>>> x = [[]] * 3>>> x[1].append(0)>>> x[[0], [0], [0]]我希望有這樣的東西:[[], [0], []]有什么想法嗎?
查看完整描述

2 回答

?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

問題是它們在記憶中都是完全相同的列表。當您使用[x]*n語法,您得到的是n許多x對象,但它們都是對同一個對象的引用。它們不是不同的實例,相反,只是n引用同一個實例。

若要列出三個不同的列表,請執行以下操作:

x = [[] for i in range(3)]

這給出了三個單獨的實例[],這就是你想要的

[[]]*n類似于

l = []x = []for i in range(n):
    x.append(l)

[[] for i in range(3)]類似于:

x = []for i in range(n):
    x.append([])   # appending a new list!

In [20]: x = [[]] * 4In [21]: [id(i) for i in x]Out[21]: [164363948, 164363948, 164363948, 164363948] # same id()'s 
for each list,i.e same objectIn [22]: x=[[] for i in range(4)]In [23]: [id(i) for i in x]Out[23]: [164382060, 164364140, 
164363628, 164381292] #different id(), i.e unique objects this time


查看完整回答
反對 回復 2019-07-10
?
慕神8447489

TA貢獻1780條經驗 獲得超1個贊

創建一個包含一個空列表的列表。根據需要將空列表追加到外部列表 

查看完整回答
反對 回復 2019-07-10
  • 2 回答
  • 0 關注
  • 1071 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號