提问人:kubaSpolsky 提问时间:10/14/2022 更新时间:10/14/2022 访问量:34
列表非变异方法
List non-mutating method
问:
python 中是否有任何方法不是改变原始列表,而是返回一个新对象?
在 JavaScript 中,至少有一个:
const originalArray = [1,2,3]
originalArray.concat(4) // returns a new array
答:
3赞
Óscar López
10/14/2022
#1
在 Python 中,这将返回一个新列表:
originalArray = [1,2,3]
originalArray + [4]
或者,如果要创建列表的新副本,请使用切片:
originalArray[:]
列表推导式还将创建一个新列表:
[x for x in originalArray]
这是另一种方式:
import copy
copy.copy(originalArray)
还有内置方法,如 Ronald 的回答所示。copy()
评论
0赞
Codist
10/14/2022
或者内置的 copy() 方法
1赞
Ronald van Elburg
10/14/2022
#2
您可以简单地使用 copy 方法:
list1 = ['a','b','c']
list2 = list1.copy()
list1 is list2, list1 == list2
返回
(False, True)
显示您有具有相同内容的新对象。
下一个:更改数据成员的最有效方法
评论
newarray = originalArray + [4]