在python

时间:2017-06-02 07:14:16

标签: python list raspbian

我正在尝试在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文件导入到apple 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")

2 个答案:

答案 0 :(得分: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")

我会选择第一种方法,使用字典,但取决于你要做什么

答案 1 :(得分: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