Neden bir dilim kullanarak bir listeyi list
yerleşiğinden çok daha hızlı sığdırıyor? Böyle garip şeyler görünceNeden bir listeyi [:] kullanarak bariz bir şekilde daha hızlı bir şekilde kopyalıyorsunuz?
In [1]: x = range(10)
In [2]: timeit x_ = x[:]
10000000 loops, best of 3: 83.2 ns per loop
In [3]: timeit x_ = list(x)
10000000 loops, best of 3: 147 ns per loop
Genellikle, onlar python3 sabit konum - ama bu tutarsızlık hala:
In [1]: x = list(range(10))
In [2]: timeit x_ = x[:]
10000000 loops, best of 3: 100 ns per loop
In [3]: timeit x_ = list(x)
10000000 loops, best of 3: 178 ns per loop
ilgili http://stackoverflow.com/questions/12537716/why-is-slice-assignment-faster-than-list-insert?rq=1 için – njzk2
bir açıklama list 'bir fonksiyondur 'olduğunu çok araman gerek. – njzk2
listesi de her bir öğeyle ilgili bir şeyler yapmaya ihtiyaç duyuyor, bir dilim sadece bir bellek bloğunu yeni bir adrese kopyalarken ... –