除了创建一个新值并复制值或使用and之外,还有一种方法可以在 Python 中复制 an array.array(而不是 a )吗?我似乎在文档中找不到任何内容。如果没有,是否有类似的内置数据类型可以做到这一点?list.to_something.from_something
我正在开发一个高性能模块,所以答案越快越好。
我当前的解决方案只是使用.to_bytesand .from_bytes,根据我的测试,速度大约快 1.8 倍。
码:
import math
import time
import random
class SortClass(object):
def sort1(self, l):
if len(l)==1:
return l
elif len(l)==2:
if l[0]<l[1]:
return l
else:
return l[::-1]
else:
pivot=math.floor(len(l)/2)
a=l[pivot:]
b=l[:pivot]
a2=self.sort1(a)
b2=self.sort1(b)
if a2==None or b2==None:
a2=[]
b2=[]
return (a2+b2).sort()
return []
Sort=SortClass()
x=[20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1]
print(Sort.sort1(x))
Run Code Online (Sandbox Code Playgroud)
代码输出None,即使它应该在两种情况下返回一个空列表:
return []
Run Code Online (Sandbox Code Playgroud)
和
a2=self.mergeSort(a)
b2=self.mergeSort(b)
if a2==None or b2==None:
a2=[]
b2=[]
return (a2+b2).sort()
Run Code Online (Sandbox Code Playgroud)
详细信息:代码用于我为python练习制作的列表排序模块(我在python中相对较新).sort1是一个修改过的mergesort.