SORU
18 Aralık 2014, PERŞEMBE


Neden bir listeden bir listesini oluşturmak daha büyük yapar mı?

Aynı listeler ne olması gerektiği üzerinde sys.getsizeof kullanırken bazı tutarsızlıklar görüyorum. (Python 2.7.5)

>>> lst = [0,1,2,3,4,5,6,7,8,9]
>>> sys.getsizeof(lst)
76
>>> lst2 = list(lst)
>>> sys.getsizeof(lst2)
104
>>> lst3 = list(lst2)
>>> sys.getsizeof(lst3)
104
>>> sys.getsizeof(lst[:])
76
>>> sys.getsizeof(lst2[:])
76

Herkes basit bir açıklaması var mı?

CEVAP
18 Aralık 2014, PERŞEMBE


Liste hazır bilgi ile, VM set uzunlukta bir liste oluşturur. list() yapıcı bir sıra geçerken unsurlar (list.extend()) tarafından eklendi ve bu liste uygun olduğunda yeniden boyutlandırıldığında. Maliyeti amorti etmek için resize operation overallocates beri, son liste genellikle Kaynak Listesi daha büyük olacak.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Joshua Kywn

    Joshua Kywn

    17 Mayıs 2010
  • Skrillex

    Skrillex

    6 NİSAN 2010
  • TheJoeycool2010

    TheJoeycool2

    12 Temmuz 2010