【问题标题】:Python For loop get index [duplicate]Python For循环获取索引[重复]
【发布时间】:2013-03-19 01:18:13
【问题描述】:

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

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

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

【问题讨论】:

  • 除了编号问题,您确定这是您想要的吗? w 是当前字符,而不是单词。

标签: python loops for-loop indexing


【解决方案1】:

使用enumerate() function 生成索引以及您正在循环的序列的元素:

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

【讨论】:

  • 那么使用 enumerate() 函数,需要定义两个变量吗?一个用于索引,一个用于字符?
  • @user1817081:你没有;你现在正在循环产生二值元组的东西。使用元组解包只会更容易“接收”它们。
  • @user1817081:你也可以for elem in enumerate(loopme),然后用elem[[0]作为索引值,用elem[1]作为字符,但是这样比较麻烦。
  • 知道了,所以 enumerate() 正在创建字符串的映射。我猜这也适用于列表?
  • @user1817081: enumerate() 可用于任何序列。它不会创建地图,它只是保留一个计数器。每次for 构造请求下一个元素时,它依次向包装序列询问下一项,然后将计数器的值与包装序列中的下一个值一起返回,然后递增内部计数器。跨度>
【解决方案2】:

您要遍历字符或单词吗?

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

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

【讨论】:

    猜你喜欢
    • 2013-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-13
    • 1970-01-01
    • 1970-01-01
    • 2012-08-20
    • 1970-01-01
    相关资源
    最近更新 更多