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ş:
PHP'in listesinde anlama sözdizim...
Bul ve liste Python listesinde çoğaltı...
Python'ın en etkili listesinde en...
Nasıl bir Python listesinde iki öğe ko...
Nasıl Python listesinde bir öğenin yin...