Tim*_*man 18 python arrays list immutability
我试图理解扩展如何在Python中工作,它并没有完全按照我的期望.例如:
>>> a = [1, 2, 3]
>>> b = [4, 5, 6].extend(a)
>>> b
>>>
Run Code Online (Sandbox Code Playgroud)
但我原以为:
[4, 5, 6, 1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
为什么返回None而不是扩展列表?
list方法在大多数情况下就地运行并返回None.
>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> b.extend(a)
>>> b
[4, 5, 6, 1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
其他人指出了许多list方法,特别是那些改变列表的方法,返回None而不是对列表的引用。他们这样做的原因是这样您就不会对是否制作了列表副本感到困惑。如果您可以写,a = b.extend([4, 5, 6])那么是a对与b? 被b语句修改了吗?通过返回None而不是变异列表,这样的语句变得毫无用处,你很快就会发现其中a没有你认为它做了什么,然后你学会了只写b.extend(...)。因此消除了缺乏清晰度。
| 归档时间: |
|
| 查看次数: |
8616 次 |
| 最近记录: |