有没有办法按指定的数字扩展列表?最初我有一个大小为5的列表,根据某个函数的返回值,我需要按该大小扩展列表。这是我的代码
list = [0,0] # size is 2
size = some_function() # function returns 3
list.extend(size)
print len(list) # should print 5
答案 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远远好于我的回答