SORU
10 EYLÜL 2009, PERŞEMBE


Pythonic her n iadesi listesine yolu'inci madde daha geniş bir listesi

1000 sıfırdan numaraları listesi. Pythonic/verimli bir şekilde ilk listesi ve sonraki her 10. madde üretmek için var mı? yani. [0, 10, 20, 30 ...]

Evet bu döngü için kullanarak yapabilirim ama bu, belki de bir çizgi yapmak için daha güzel bir yol olup olmadığını merak ediyorum?

CEVAP
10 EYLÜL 2009, PERŞEMBE


>>> l = range(165)
>>> l[0::10]
[0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160]

EDİT: sadece eğlence olsun diye, küçük bir zamanlama karşılaştırma (sınır durumu görmezden gelerek):

$ python -m timeit -s "l = range(1000)" "l1 = [x for x in l if x % 10 == 0]"
1000 loops, best of 3: 525 usec per loop
$ python -m timeit -s "l = range(1000)" "l1 = l[0::10]"
100000 loops, best of 3: 4.02 usec per loop

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • HTC Tutorials

    HTC Tutorial

    21 EYLÜL 2010
  • Lupe Fiasco

    Lupe Fiasco

    23 ŞUBAT 2006
  • TheGamer2323

    TheGamer2323

    25 Ocak 2009