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

  • boburnham

    boburnham

    11 Temmuz 2006
  • jat4011

    jat4011

    16 EKİM 2010
  • Living Waters

    Living Water

    9 AĞUSTOS 2006