Python FOR döngüsünün içinde döngü sayısını alma


259

forBir liste üzerinden yinelenen bir Python döngüsünde şunu yazabiliriz:

for item in list:
    print item

ve listedeki tüm öğeleri düzgün bir şekilde gözden geçiriyor. Döngü içinde şu ana kadar kaç kez döngü yaptığımı bilmenin bir yolu var mı? Örneğin, bir liste almak istiyorum ve on elementi işledikten sonra onlarla bir şeyler yapmak istiyorum.

Düşündüğüm alternatifler şöyle olurdu:

count=0
for item in list:
    print item
    count +=1
    if count % 10 == 0:
        print 'did ten'

Veya:

for count in range(0,len(list)):
    print list[count]
    if count % 10 == 0:
        print 'did ten'

for item in listŞimdiye kadar yineleme sayısını almanın daha iyi bir yolu var mı ?


1
Ayrıca, yığınlar içindeki bir liste üzerinden yineleme yanıtları da ilginizi çekebilir: stackoverflow.com/questions/434287/…
Dave Bacher

Yanıtlar:



86

Nick ile aynı fikirde. İşte daha ayrıntılı kod.

#count=0
for idx, item in enumerate(list):
    print item
    #count +=1
    #if count % 10 == 0:
    if (idx+1) % 10 == 0:
        print 'did ten'

Kodunuzdaki count değişkenini yorumladım.


9
Ayrıca , 0 yerine 1 ile numaralandırmaya başlamak için enumerateisteğe bağlı startparametresini kullanabilirsiniz, ancak OP countyerine adını kullanırdım idx.
Stefan Pochmann

İsteğe bağlı bir başlangıç ​​parametresi olduğu hakkında hiçbir fikrim yoktu. Bunu bildiğim iyi oldu. Teşekkürler
Vikram Garg

1

Oldukça eski bir soru biliyorum ama .... başka bir şey arıyorum karşılaştı bu yüzden benim atış vermek:

[each*2 for each in [1,2,3,4,5] if each % 10 == 0])

1

Zip işlevini kullanarak hem öğe hem de dizin elde edebiliriz.

countries = ['Pakistan','India','China','Russia','USA']

for index, element zip(range(0,countries),countries):

         print('Index : ',index)
         print(' Element : ', element,'\n')

output : Index : 0 Element : Pakistan ...

Ayrıca bakınız :

Python.org


0

Kullanmayı deneyin itertools.count([n])


2
Burada nasıl kullanacağınızdan emin değilim. Sayı, sayı dizileri oluşturmak için kullanılır.
Codie CodeMonkey

ancak bir sonraki yinelemenin değerini nasıl sıfırlar? Burada itertools.count () kullanmak mümkün değildir.
Javed
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.