Dapatkan jumlah loop di dalam loop Python FOR


259

Dalam forloop Python yang berulang pada daftar kita bisa menulis:

for item in list:
    print item

dan itu dengan rapi melewati semua elemen dalam daftar. Apakah ada cara untuk mengetahui dalam loop berapa kali saya telah mengulang sejauh ini? Misalnya, saya ingin mengambil daftar dan setelah saya memproses sepuluh elemen saya ingin melakukan sesuatu dengan mereka.

Alternatif yang saya pikirkan adalah sesuatu seperti:

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

Atau:

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

Apakah ada cara yang lebih baik (seperti halnya for item in list) untuk mendapatkan jumlah iterasi sejauh ini?


1
Anda mungkin juga tertarik dengan jawaban untuk mengulangi daftar dalam potongan: stackoverflow.com/questions/434287/…
Dave Bacher

Jawaban:



86

Setuju dengan Nick. Berikut ini adalah kode yang lebih rumit.

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

Saya telah mengomentari variabel jumlah dalam kode Anda.


9
Anda juga dapat menggunakan parameter enumerateopsional startuntuk mulai menghitung dengan 1 bukan 0, meskipun kemudian saya akan menggunakan nama OP countbukan idx.
Stefan Pochmann

Saya tidak tahu bahwa ada parameter mulai opsional. Senang mendengarnya. Terima kasih
Vikram Garg

1

Saya tahu pertanyaan yang agak lama tapi .... menemukan sesuatu yang lain jadi saya mencoba:

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

1

Menggunakan fungsi zip kita bisa mendapatkan elemen dan indeks.

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 ...

Lihat juga :

Python.org


0

Coba gunakan itertools.count([n])


2
Saya tidak yakin bagaimana Anda akan menggunakan hitungan di sini. Hitungan digunakan untuk menghasilkan urutan angka.
Codie CodeMonkey

tetapi bagaimana cara mereset nilai untuk iterasi berikutnya. Menggunakan itertools.count () tidak layak di sini.
Javed
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.