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])])
假设无法直接追加/扩展列表。表单最流行的解决此问题的工作是什么?
答案 0 :(得分:4)
list.extend
修改列表并返回任何内容,从而产生None
。在第二种情况下,它是一个正在扩展的临时列表,在该行之后立即消失,而在第一种情况下,它可以通过x
引用。
在尝试将listC扩展到listB时将listB附加到listA。
您可能希望尝试以下操作,而不是使用extend
:
listA.append(listB[15:18] + listC[3:12])
如果您想要实际修改extend
或listB
,请使用listC
在多个简单的行中执行此操作。
答案 1 :(得分:0)
extend
会自我扩展列表。该方法的返回类型为None
如果你想要union
2列表并将该列表添加到另一个列表,那么你必须使用另一种方式来添加。
listB[15:18] = listC[3:12]
listA.extend(listB)