在 python 中创建一个空的嵌套列表
Creating an empty nested list in python
我正在尝试在 python 中创建一个空的嵌套列表。我搜索了有关嵌套列表的信息,大多数通常是已经包含值的嵌套列表。
我需要嵌套列表的原因是因为我有一组项目:Apple、Pears 和 Oranges。但是,每个项目都有另一个列表,其中包含:ID、价格、数量。
所以我的计划是:
1.将所有项目分别放入索引0,1,2。
所以,苹果 = [0],梨 =[1],橙子 =[2]
2. 创建另一个嵌套列表来放置 ID、价格和数量。
所以以苹果为例,我会这样做:
apple[0][0].append(ID), apple[0][1].append(价格), apple[0][2].append(数量)
嵌套列表可以这样工作吗?或者有没有其他方法可以创建一个空的嵌套列表?顺便说一下,苹果、梨子和橙子都有自己的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")
您可以使用 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")
我会选择第一种方法,使用字典,但这取决于你要做什么
是的,您可以这样做,但请注意您的 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
我正在尝试在 python 中创建一个空的嵌套列表。我搜索了有关嵌套列表的信息,大多数通常是已经包含值的嵌套列表。
我需要嵌套列表的原因是因为我有一组项目:Apple、Pears 和 Oranges。但是,每个项目都有另一个列表,其中包含:ID、价格、数量。
所以我的计划是: 1.将所有项目分别放入索引0,1,2。 所以,苹果 = [0],梨 =[1],橙子 =[2] 2. 创建另一个嵌套列表来放置 ID、价格和数量。 所以以苹果为例,我会这样做: apple[0][0].append(ID), apple[0][1].append(价格), apple[0][2].append(数量)
嵌套列表可以这样工作吗?或者有没有其他方法可以创建一个空的嵌套列表?顺便说一下,苹果、梨子和橙子都有自己的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")
您可以使用 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")
我会选择第一种方法,使用字典,但这取决于你要做什么
是的,您可以这样做,但请注意您的 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