2013-03-28 22 views
28

Bir dizede geçerli karakteri yazmak için döngü için basit bir Python yazıyorum. Ancak, karakterin indisini alamadım. İşte sahip olduğum şey şu ki, döngüdeki karakterin geçerli dizinini almak için iyi bir yol biliyor mu?Python Döngü için dizin alın

loopme = 'THIS IS A VERY LONG STRING WITH MANY MANY WORDS!' 

for w in loopme: 
    print "CURRENT WORD IS " + w + " AT CHARACTER " 
+1

gibi bir şey gerekiyordu mutlak karakter pozisyonu için

? 'w' mevcut karakter, kelime değil. –

cevap

62

dizisinin sen unsurları ile birlikte indeksi oluşturmak için enumerate() function kullanın üzerinde döngü vardır:

for index, w in enumerate(loopme): 
    print "CURRENT WORD IS", w, "AT CHARACTER", index 
+0

enumerate() işleviyle, iki değişken tanımlamanız gerekir? dizin için bir tane ve bir tane için? – user1817081

+0

@ user1817081: Yapamazsınız *; Şimdi iki değerli tupller veren bir şey üzerinde dönüyorsunuz. Tuple açmanın kullanılması sadece onları 'almayı' kolaylaştırır. –

+2

@ user1817081: Ayrıca, saydam (loopme) 'de elem için' 'de yapabilir, daha sonra karakter için elem [[0]' ve karakter için elem [1] 'yi kullanabilirsiniz, ancak bu sadece daha hantaldır. –

4

Eğer karakter veya kelime tekrarlatacak istiyor musunuz?

kelimeler için, bu tür Bu kelimenin dizin yazdırır

for index, word in enumerate(loopme.split(" ")): 
    print "CURRENT WORD IS", word, "AT INDEX", index 

olarak, ilk kelimelerini bölmek gerekecek. Eğer numaralandırma sorunu, bu ne istediğiniz emin Kenara

chars = 0 
for index, word in enumerate(loopme.split(" ")): 
    print "CURRENT WORD IS", word, "AT INDEX", index, "AND AT CHARACTER", chars 
    chars += len(word) + 1