Python—扩展列表直接导致无,为什么?
输出:Python—扩展列表直接导致无,为什么?,python,list,python-3.x,append,extend,Python,List,Python 3.x,Append,Extend,输出: x=[1,2,3] x.extend('a') [1,2,3].extend('a') 但当我做以下事情时: x is [1,2,3,'a'] 输出: x=[1,2,3] x.extend('a') [1,2,3].extend('a') 为什么扩展工作在列表引用上,而不是列表上 第二部分: 我发现这一点是因为我试图将listB附加到listA,同时尝试将listC扩展到listB None 假设列表不能直接追加/扩展。解决此问题最常用的变通方式是什么?list.extend
x=[1,2,3]
x.extend('a')
[1,2,3].extend('a')
但当我做以下事情时:
x is [1,2,3,'a']
输出:
x=[1,2,3]
x.extend('a')
[1,2,3].extend('a')
为什么扩展工作在列表引用上,而不是列表上
第二部分:
我发现这一点是因为我试图将listB附加到listA,同时尝试将listC扩展到listB
None
假设列表不能直接追加/扩展。解决此问题最常用的变通方式是什么?
list.extend
修改列表并不返回任何内容,从而导致None
。在第二种情况下,它是一个正在扩展的临时列表,在该行之后立即消失,而在第一种情况下,它可以通过x
引用
在尝试将listC扩展到listB时将listB附加到listA
None
您可能希望尝试以下操作,而不是使用extend
:
listA.append([listB[15:18].extend(listC[3:12])])
如果您想实际修改
listB
或listC
列表,也可以使用extend
在多个简单行中执行此操作。extend
修改列表并不返回任何内容,从而导致None
。在第二种情况下,它是一个正在扩展的临时列表,在该行之后立即消失,而在第一种情况下,它可以通过x
引用
在尝试将listC扩展到listB时将listB附加到listA
None
您可能希望尝试以下操作,而不是使用extend
:
listA.append([listB[15:18].extend(listC[3:12])])
如果您想实际修改
listB
或listC
,extend
将自己扩展列表,也可以使用extend
在多个简单的行中执行。该方法的返回类型为None
如果您想union
2列表并将该列表添加到另一个列表中,则必须使用另一种方式添加
listA.append(listB[15:18] + listC[3:12])
extend
将自己扩展列表。该方法的返回类型为None
如果您想union
2列表并将该列表添加到另一个列表中,则必须使用另一种方式添加
listA.append(listB[15:18] + listC[3:12])
None
是print语句的输出,如果您使用的是print[1,2,3]。extend('a')
。因为extend
的返回类型是None
,所以Python中的惯例是,变异序列的方法返回None
。更多。None
是print语句的输出,如果您使用的是print[1,2,3]。extend('a')
。因为extend
的返回类型是None
,所以Python中的惯例是,变异序列的方法返回None
。更多