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

  • JorteexHD

    JorteexHD

    20 NİSAN 2012
  • PhoneBuff

    PhoneBuff

    10 HAZİRAN 2011
  • Sam Kear

    Sam Kear

    14 Temmuz 2007