将项目追加到现有列表时为什么会得到“无”项目?

时间:2018-12-03 11:49:44

标签: python list

用例:
我想将一个新项目以及一个列表中的所有现有项目附加到同一列表中。
例如:

list = [ 'a', 'b', 'c']

附加'd',期望输出为:['a', 'b', 'c', 'a', 'b', 'c', 'd']

我的代码:

list.append(list.append('d'))

当前输出:

['a', 'b', 'c', 'd', None]

为什么我在这里得到None物品,如何按预期方式打印列表?

2 个答案:

答案 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']