我正在编写一个简单的Python for循环来打印字符串中的当前字符。但是,我无法获取字符的索引。这是我的代码,有人知道在循环中获取当前字符索引的好方法吗?
loopme = 'THIS IS A VERY LONG STRING WITH MANY MANY WORDS!'
for w in loopme:
print "CURRENT WORD IS " + w + " AT CHARACTER "
使用enumerate()
函数来生成序列的索引及其元素:
for index, w in enumerate(loopme):
print "CURRENT WORD IS", w, "AT CHARACTER", index
for elem in enumerate(loopme)
,然后使用 elem[0]
获取索引值,使用 elem[1]
获取字符,但这样会更加繁琐。 - Martijn Pietersenumerate()
可以用在任何序列上。它不会创建一个映射,只是保持一个计数器。每次for
循环询问下一个元素时,它会转而向包裹的序列请求下一个项,然后返回计数器的值和来自包裹序列的下一个值,然后增加内部计数器。 - Martijn Pieters您想遍历字符还是单词?
如果是单词,您需要先将单词分割,比如:
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
w
代表当前字符,而不是单词。 - Andrew Jaffe