用指定数字扩展Python列表

0 投票
2 回答
2798 浏览
提问于 2025-04-28 04:35

有没有办法按指定的数量来扩展一个列表?我最开始有一个大小为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填充这些位置。不过,通常来说,等你有了要添加的项目时再扩展列表,或者边添加边放进去,效果会更好。

撰写回答