编程语言
首页 > 编程语言> > Python列表扩展和变量赋值

Python列表扩展和变量赋值

作者:互联网

我试图扩展一个列表,并对结果返回值为None感到困惑.我试过的是这个:

>>> a = [1,2]  
>>> b = [3,4]  
>>> a = a.extend(b)  
>>> print a  

None

我终于意识到问题是最后对’a’的冗余分配.这样可行:

>>> a = [1,2]  
>>> b = [3,4]  
>>> a.extend(b)  
>>> print a  

[1,2,3,4]

我不明白的是为什么第一个版本不起作用.分配给’a’是多余的,但为什么它会破坏操作?

解决方法:

因为,正如您所注意到的,extend的返回值是None.这在Python标准库中很常见;破坏性操作返回None,即没有值,所以你不会试图使用它们,就好像它们是纯函数一样.阅读这个设计选择的Guido’s explanation.

例如,列表上的排序方法也返回None,而非破坏性排序函数返回一个值.

标签:python,list,extend,variable-assignment
来源: https://codeday.me/bug/20191008/1872346.html