如何最好地使用Python列表?

如何最好地使用Python列表?,python,list,Python,List,我的问题如下: 我是Python编程新手,对列表的正确使用有点困惑。 例如,当我想创建一个包含10个元素的列表时,我会做如下操作: list = [None for x in range(10)] 当我有东西穿上时,我会: list[lastPosition] = data 但经过一些研究后,我注意到列表的这种用法既不有效,也不推荐使用。但是,在我掌握所有数据之前,还有什么其他方法可以使一个列表被非专业化呢?我的想法是将一个列表(特别是像Java的集合之类的东西)专门化,当数据到来时,我会填

我的问题如下: 我是Python编程新手,对列表的正确使用有点困惑。 例如,当我想创建一个包含10个元素的列表时,我会做如下操作:

list = [None for x in range(10)]
当我有东西穿上时,我会:

list[lastPosition] = data
但经过一些研究后,我注意到列表的这种用法既不有效,也不推荐使用。但是,在我掌握所有数据之前,还有什么其他方法可以使一个列表被非专业化呢?我的想法是将一个列表(特别是像Java的集合之类的东西)专门化,当数据到来时,我会填充它。
我希望我的问题足够清楚。

如果您事先不知道列表中有多少元素, 然后不要试图分配10个元素。从空列表开始,并使用
append
功能向其追加:

lst = []
...
lst.append(value)
如果出于某种原因,确实需要将列表初始化为恒定大小, 初始元素是不可变的值, 然后你可以这样做:

lst = [None] * 10
如果初始元素是可变值, 你很可能不想使用这种技术, 因为所有元素都将指向同一个实例。 在这种情况下,您的原始技术基本上是很好的:

lst = [SomeClass() for _ in range(10)]
注意,我将变量从
list
重命名为
lst
, 因为
list
是Python中的内置类,
最好避免这种重叠。

list=[];list.append(数据)
如果您想要一个不断增长的列表?如果您希望列表具有固定大小,那么用
None
填充列表没有什么错。(更简单的方法是
list=[None]*10
。@Ryan这正是我想要的!非常感谢。我不知道这个列表可以是动态的
list=[None]*10
用于引用不可变值的列表;尝试类似于
list=[[]]*10的操作是一个等待发生的错误。@timgeb感谢您的回答和提示。这正是我要找的。我只是用一个常量大小初始化,因为我不知道append方法。看来我需要更注意文档。