SORU
13 Aralık 2008, CUMARTESİ


Python - listesinde yerini al

Bir liste üzerinden yineleme olduğumu ve eğer belirli bir koşulu karşılaması durumunda dışarı öğenin dizinini yazdırmak istiyorum. Bunu nasıl yaparım?

Örnek:

testlist = [1,2,3,5,3,1,2,1,6]
for item in testlist:
    if item == 1:
        print position

CEVAP
13 Aralık 2008, CUMARTESİ


Hmmm. Liste bir anlama burada bir cevap vardı, ama kayboldu.

Burada:

 [i for i,x in enumerate(testlist) if x == 1]

Örnek:

>>> testlist
[1, 2, 3, 5, 3, 1, 2, 1, 6]
>>> [i for i,x in enumerate(testlist) if x == 1]
[0, 5, 7]

Güncelleme:

Tamam, jeneratör bir ifade edeceğiz jeneratör bir ifade. İşte liste üreteci tekrar, döngü için:

>>> for i in [i for i,x in enumerate(testlist) if x == 1]:
...     print i
... 
0
5
7

Şimdi jeneratörü inşa edeceğiz...

>>> (i for i,x in enumerate(testlist) if x == 1)
<generator object at 0x6b508>
>>> for i in (i for i,x in enumerate(testlist) if x == 1):
...     print i
... 
0
5
7

ve niftily yeterli, bir değişkene atamak ve oradan kullanabiliriz...

>>> gen = (i for i,x in enumerate(testlist) if x == 1)
>>> for i in gen: print i
... 
0
5
7

Ve FORTRAN yazardım.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Karan Thakur

    Karan Thakur

    23 HAZİRAN 2010
  • NextGenWindows

    NextGenWindo

    8 Kasım 2011
  • SignatureSeries

    SignatureSer

    24 Aralık 2006