将值附加到空lis的最佳实践

2024-06-02 04:30:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我只是对下面的代码片段不起作用感到好奇,它应该初始化一个空列表并动态地附加一个初始值。第二个片段正在工作。怎么了?对于这种初始化是否有最佳实践?

>>> foo = [].append(2)
>>> print foo
None
>>> foo = []
>>> foo.append(2)
>>> print foo
[2]

编辑:看来我在语法上有点误会。正如下面已经指出的,append始终不返回任何结果值。我首先想到的是,[]将返回一个空的list对象,append应该在其中放置第一个元素,然后将该列表分配给foo。那是错误的。


Tags: 对象代码none元素编辑列表foo错误
1条回答
网友
1楼 · 发布于 2024-06-02 04:30:03

你不能做以下两件事的真正原因

l = [].append(2)
l = [2,3,4].append(1)

因为.append()总是返回None作为函数返回值。.append()应该在适当的地方完成。

有关数据结构的文档,请参见here。作为总结,如果要初始化列表中的值,请执行以下操作:

l = [2]

如果要初始化空列表以在函数/操作中使用,请执行以下操作:

l = []
for x in range(10):
    value = a_function_or_operation()
    l.append(value)

最后,如果您真的想进行类似于l = [2,3,4].append()的计算,请使用+运算符,例如:

l1 = []+[2]
l2 = [2,3,4] + [2]
print l1, l2
>>> [2] [2, 3, 4, 2]   

这通常是你初始化列表的方式。

相关问题 更多 >