使用指定的数字扩展python列表

时间:2014-10-17 19:28:48

标签: python

有没有办法按指定的数字扩展列表?最初我有一个大小为5的列表,根据某个函数的返回值,我需要按该大小扩展列表。这是我的代码

list = [0,0] # size is 2

size = some_function()  # function returns 3

list.extend(size)

print len(list)   # should print 5

2 个答案:

答案 0 :(得分:0)

Python没有预先分配'的概念。列表大小。列表以arraylists的形式实现,旨在通过固定大小的分区动态增长。并且列表中的索引必须始终包含一个值,这里没有分配但空索引(至少用户有权访问)。

在大多数情况下,在实际添加元素之前,人为地夸大列表大小的性能几乎没有增加。列表是引用列表这一事实加剧了这一点,因此您甚至不为任何特定对象预分配内存,只是针对一堆指针。但是,如果这真的是你想要的,你可以做到以下几点:

lst.extend([None]*size)

这会按给定的大小增加列表(请注意,我将变量的名称从list更改为lst,以免影响内置list),并填写有None的广告位。但是,一般来说,只要有物品就可以延长,或者随时随地附加物品。

答案 1 :(得分:-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远远好于我的回答