2017-06-02 107 views
-2

我想在python中創建一個空的嵌套列表。我搜索了關於嵌套列表的信息,大多數通常是嵌套列表,其中已經有值。在python中創建一個空的嵌套列表

我需要一個嵌套列表的原因是因爲我有一組物品:Apple,Pears和Oranges。但是,每件商品都有另一個包含以下內容的列表:ID,價格,數量。

所以我計劃的是: 1.將所有項目分別放入索引0,1,2。 所以,apple = [0],pears = [1],oranges = [2] 2.創建另一個嵌套列表來放置ID,價格和數量。因此以蘋果爲例,我會這樣做: apple [0] [0] .append(ID),apple [0] [1] .append(price),apple [0] [2] .append(quantity )

嵌套列表可以這樣工作嗎?或者有沒有其他的方法來創建一個空的嵌套列表?順便說一下,蘋果,梨和橙都有自己的python代碼文件,所以我必須將梨和橙色python文件導入到蘋果python文件中。我將不勝感激任何幫助。謝謝。從apple.py

代碼:

fruits = [],[] 

fruits[0],[0].append("ID") 
fruits[0],[1].append("price") 
fruits[0],[2].append("quantity") 

代碼從pears.py:

fruits = [],[] 

fruits[1],[0].append("ID") 
fruits[1],[1].append("price") 
fruits[1],[2].append("quantity") 
+0

在代碼中沒有嵌套列表....實際上你的代碼沒有任何意義 – Netwave

+0

也許,你可以顯示如何創建空的嵌套列表? – JasonSmith

+0

這不是一個讓我軟件服務。先試試作業並努力學習。這個代碼根本沒有努力。 – Netwave

回答

0

是的,你可以這樣做什麼,但是請注意,你的fruits對象是一個元組,而不是一個列表。這意味着你不能爲它添加新的水果類型。

>>> fruits = [],[] 
>>> type(fruits) 
<type 'tuple'> 

>>> fruits.append([]) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: 'tuple' object has no attribute 'append' 

使用額外的方括號,使其列出的清單:

>>> fruits = [[],[]] 
>>> type(fruits) 
<type 'list'> 
>>> fruits.append([]) 
>>> fruits 
[[], [], []] 

然後像您期望的,只需要省略額外的索引和逗號,這是你可以填充內表沒有有效的Python:

>>> fruits[0].append("ID") 
>>> fruits[0].append("price") 
>>> fruits[0].append("quantity") 
>>> fruits 
[['ID', 'price', 'quantity'], [], []] 

然後,你將與fruit[1]fruit[2]重複。

或者你可以做所有這些在一個循環:

fruits = [] 
for n in range(3): 
    fruits[n].append("ID") 
    fruits[n].append("price") 
    fruits[n].append("quantity") 

不過說真的,這聽起來像你應該使用的東西dict爲:

fruits = {} 
for id, fruit in enumerate(["apples", "pears", "oranges"]): 
    fruits[fruit] = { "ID": id, "price": None, "quantity": 0 } 

然後你可以使用他們喜歡這個:

fruits["apples"]["price"] = 2.99 
fruits["apples"]["quantity"] = 5 
+0

你好,謝謝你答覆。是否有可能使用dict方法創建數據庫? – JasonSmith

+0

如果你想持久化數據,[shelve](https://docs.python.org/3/library/shelve.html)模塊提供了字典的輕量級持久性。 –

0

您可以使用Python字典,這樣來做:

fruits={} 
one_fruit={'ID':0,'price':0,'quantity':0} 
fruits['apple']=one_fruit 

,或者你可以用這種方式做清單:

fruits = [],[]  
fruits[0].append("ID") 
fruits[0].append("price") 
fruits[0].append("quantity") 

我會選擇第一種方法,使用詞典,而是取決於你要做

+0

你好,謝謝你的回覆。對於'one_fruit = {'ID':0,'price':0,'quantity':0}',如果我使用變量而不是硬編碼值,有可能嗎?這是因爲ID是隨機生成的,並在while循環中添加到列表 – JasonSmith

+0

是的,當然可以使用像'one_fruit = {'ID':variableID,'price':variable_price,'quantity'的變量: variable_quantity}。你甚至可以做'水果['蘋果'] ['ID'] =變量ID' – nacho

+0

@JasonSmith你可以投票的答案和幫助,所以下次你會很高興做到這一點 – nacho

相關問題