Python For循环获取索引

use*_*081 41 python indexing loops for-loop

我正在编写一个简单的Python for循环来抛出字符串中的当前字符.但是,我无法获得角色的索引.这是我拥有的,有没有人知道在循环中获取字符的当前索引的好方法?

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

 for w  in loopme:
    print "CURRENT WORD IS " + w + " AT CHARACTER " 
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 83

使用该enumerate()函数生成索引以及要循环的序列元素:

for index, w in enumerate(loopme):
    print "CURRENT WORD IS", w, "AT CHARACTER", index 
Run Code Online (Sandbox Code Playgroud)

  • @ user1817081:你也可以在枚举(loopme)中执行`for elem',然后使用`elem [[0]`作为索引值,使用`elem [1]`作为字符,但这更麻烦. (3认同)
  • @ user1817081:你没有*必须*;你现在正在循环产生二值元组的东西。使用元组解包只会让“接收”它们变得更容易。 (2认同)
  • @ user1817081:`enumerate()`可用于*any*序列.它不会创建地图,只是保留一个计数器.每次`for`构造要求下一个元素时,它依次询问包装序列中的下一个项目,然后返回计数器的值以及包装序列中的下一个值,然后递增内部计数器. (2认同)

glg*_*lgl 5

你想遍历字符或单词吗?

对于单词,您必须先拆分单词,例如

for index, word in enumerate(loopme.split(" ")):
    print "CURRENT WORD IS", word, "AT INDEX", index
Run Code Online (Sandbox Code Playgroud)

这将打印单词的索引。

对于绝对字符位置,您需要类似的东西

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
Run Code Online (Sandbox Code Playgroud)