2013-03-28 3 views
28

나는 문자열에 현재 문자를 prnt하는 간단한 파이썬 for 루프를 작성하고있다. 그러나 캐릭터의 색인을 얻을 수 없었습니다. 여기에 내가 가진 것이있다. 누가 루프의 캐릭터의 현재 색인을 얻는 좋은 방법을 알고 있는가?파이썬 For 루프 get 인덱스

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

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

뭔가를해야 할 것 절대 문자 위치에 대한

? 'w'는 단어가 아니라 현재의 문자입니다. –

답변

62

시퀀스 당신의 요소와 함께 인덱스를 생성하는 enumerate() function를 사용을 통해 반복됩니다

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

그래서 enumerate() 함수를 사용하면 두 개의 변수를 정의해야합니까? 하나는 색인 용이고 다른 하나는 문자 용입니까? – user1817081

+0

@ user1817081 : * 가질 필요가 없습니다. 이제 두 개의 가치가있는 튜플을 생성하는 무언가를 반복하고 있습니다. 튜플 압축 풀기를 사용하면 쉽게 '수신'할 수 있습니다. –

+2

@ user1817081 : 또한'elem in enumeration (loopme)'을 수행 한 다음, 인덱스 값으로 elem [[0]'을 사용하고 문자로는 elem [1]을 사용할 수 있습니다. –

4

당신은 문자 나 단어를 반복 하시겠습니까?

단어를 들어, 당신은이 단어의 인덱스를 인쇄

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

로 먼저 단어를 분리해야합니다. 당신이 번호 문제, 당신이 당신이 원하는 무엇을 확신에서 제외

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