在Python For循环中打印下一个项目

时间:2015-09-18 00:57:36

标签: python

我有这段代码:

corpus = "T1T2T3"

for character in corpus:
    if character == 'T':
        print character + corpus[corpus.index(character) + 1]

我只想打印所有的T&C及其后的字母。在这种情况下,它应该打印T1 T2 T3 - 而不是只打印T1 T1 T1。知道可能出现什么问题吗?

3 个答案:

答案 0 :(得分:2)

使用enumerate函数在迭代中包含索引:

for index, character in enumerate(corpus):
    if character == 'T':
        print character + corpus[index + 1]

或者,您可以使用正则表达式来查找所需的模式:

import re

for match in re.findall('T.', corpus): # a . in the regular expression pattern means "match any character"
    print match

答案 1 :(得分:1)

执行corpus.index(character)时,它始终会找到character第一次出现的索引,因此它始终会返回0

当您遍历字符串时,您也可以使用enumerate()来获取索引。示例 -

corpus = "T1T2T3"

for idx, character in enumerate(corpus):
    if character == 'T' and (idx + 1) < len(corpus):
        print character + corpus[idx + 1]

答案 2 :(得分:0)

string.index只获取字符串中字符的第一个次出现。您可以指定所需的事件编号;你必须保持这个。

或者,也许这样的事情就是你想到的,通过索引来踩过。

for char_pos in len(corpus):
    if corpus[char_pos] == 'T':
        print corpus[char_pos:char_pos+2]