一尘不染

Python-直接扩展列表会导致无,为什么?

python

x=[1,2,3]
x.extend('a')

输出:

x is [1,2,3,'a']

但是当我执行以下操作时:

[1,2,3].extend('a')

输出:

None

为什么扩展列表引用而不是列表扩展?

第二部分:

我发现这是因为我在尝试将listC扩展到listB时试图将listB附加到listA。

listA.append([listB[15:18].extend(listC[3:12])])

假设列表不能直接附加/扩展。解决该问题最常用的表格形式是什么?


阅读 218

收藏
2021-01-20

共1个答案

一尘不染

list.extend修改到位列表,不返回任何内容,从而导致None。在第二种情况下,这是一个正在扩展的临时列表,该列表在该行后立即消失,而在第一种情况下,可以通过引用x

在尝试将listC扩展到listB时将listB附加到listA。

除了使用之外extend,您可能想要尝试以下操作:

listA.append(listB[15:18] + listC[3:12])

或者,extend如果要实际修改listB或,则用多个简单的行来完成listC

2021-01-20