2017-06-02 643 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