用指定数字扩展Python列表
有没有办法按指定的数量来扩展一个列表?我最开始有一个大小为5的列表,根据某个函数的返回值,我需要把这个列表扩展到那个大小。这是我的代码
list = [0,0] # size is 2
size = some_function() # function returns 3
list.extend(size)
print len(list) # should print 5
2 个回答
-2
也许
my_list = [0,0]
new_size = 3
#my_list = [my_list[0]] * (new_size + len(my_list))
my_list += [None] * new_size
这个方法可以试试,但用 my_list.extend 比我给的答案要好得多。
1
Python没有“预先分配”列表大小的概念。列表实际上是用一种叫做数组列表的方式实现的,它们可以根据需要动态地增加大小。列表中的每个位置必须都有一个值,不能有那种分配了但为空的位置(至少用户是无法访问到这样的情况的)。
在大多数情况下,提前人为地增加列表的大小,在实际添加元素之前,几乎不会带来什么性能提升。更何况,列表是引用的列表,这意味着你并不是在为某个具体的对象预分配内存,而只是为一堆指针预分配空间。不过,如果你真的想这样做,可以试试以下方法:
lst.extend([None]*size)
这段代码会按照你给定的大小来扩展列表(注意我把变量名从list
改成了lst
,以避免和内置的list
冲突),并用None
填充这些位置。不过,通常来说,等你有了要添加的项目时再扩展列表,或者边添加边放进去,效果会更好。