用例:
我想将一个新项目以及一个列表中的所有现有项目附加到同一列表中。
例如:
list = [ 'a', 'b', 'c']
附加'd'
,期望输出为:['a', 'b', 'c', 'a', 'b', 'c', 'd']
我的代码:
list.append(list.append('d'))
当前输出:
['a', 'b', 'c', 'd', None]
为什么我在这里得到None
物品,如何按预期方式打印列表?
答案 0 :(得分:2)
改为使用list.append('d')
。
append
中的list
函数不返回任何内容,因此将list.append(list.append('d'))
添加到None
。
要打印期望的列表(将列表设为“ l”):
list_old = list(l)
l += l # ['a', 'b', 'c'] -> ['a', 'b', 'c', 'a', 'b', 'c']
l.append('d')
list_old.extend(l)
答案 1 :(得分:1)
list.append
返回None
。这是因为list.append
是就地 操作。另外,不建议使用内置的阴影。
您可以 append
复制到副本,然后extend
您的原始列表:
L = ['a', 'b', 'c']
L_to_append = L.copy()
L_to_append.append('d')
L.extend(L_to_append)
但这很冗长。您可以只使用+=
运算符:
L = ['a', 'b', 'c']
L += L + ['d']
print(L)
['a', 'b', 'c', 'a', 'b', 'c', 'd']