SORU
14 Mayıs 2010, Cuma


Python vs Listeleri Ayarlar

Python, veri yapısı, daha verimli/hızlı mı? Sipariş benim için önemli değil ve çiftleri için zaten kontrol olacağını varsayarsak, bir Python set Python bir liste daha yavaştır?

CEVAP
30 Temmuz 2013, Salı


İçinde dolaşmak olacak olan bazı değerleri saklamak istediğiniz zaman, Python'un liste yapıları biraz daha hızlı. Eğer kendi varlığı için kontrol etmek için (benzersiz) değerleri saklamak olacak olursa, ancak daha sonra Ayarlar önemli ölçüde daha hızlıdır.

Dışarı dizilerini listeler neredeyse tam olarak aynı şekilde gerçekleştirir ki, "yaratılış" (değişmez) sonra değiştirmek için yeteneği kaldırarak daha az bellek kullanımı.

Yineleme

>>> def iter_test(iterable):
...     for i in iterable:
...         pass
...
>>> from timeit import timeit
>>> timeit(
...     "iter_test(iterable)",
...     setup="from __main__ import iter_test; iterable = set(range(10000))",
...     number=100000)
12.666952133178711
>>> timeit(
...     "iter_test(iterable)",
...     setup="from __main__ import iter_test; iterable = list(range(10000))",
...     number=100000)
9.917098999023438
>>> timeit(
...     "iter_test(iterable)",
...     setup="from __main__ import iter_test; iterable = tuple(range(10000))",
...     number=100000)
9.865639209747314

Eğer bir nesnenin var olup olmadığını belirlemek

>>> def in_test(iterable):
...     for i in range(1000):
...         if i in iterable:
...             pass
...
>>> from timeit import timeit
>>> timeit(
...     "in_test(iterable)",
...     setup="from __main__ import in_test; iterable = set(range(1000))",
...     number=10000)
0.5591847896575928
>>> timeit(
...     "in_test(iterable)",
...     setup="from __main__ import in_test; iterable = list(range(1000))",
...     number=10000)
50.18339991569519
>>> timeit(
...     "in_test(iterable)",
...     setup="from __main__ import in_test; iterable = tuple(range(1000))",
...     number=10000)
51.597304821014404

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Elliot Davin

    Elliot Davin

    28 Kasım 2008
  • infodirt

    infodirt

    11 Mart 2009
  • UrAvgConsumer

    UrAvgConsume

    1 Ocak 2012