在Python For循环中打印下一项

在Python For循环中打印下一项,python,Python,我有一段代码: corpus = "T1T2T3" for character in corpus: if character == 'T': print character + corpus[corpus.index(character) + 1] 我只想打印所有的T和下面的字母。在这种情况下,它应该打印T1 T2 T3——而不是只打印T1。知道哪里出了问题吗?使用枚举函数在迭代中包含索引: for index, character in enumerate(cor

我有一段代码:

corpus = "T1T2T3"

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

我只想打印所有的T和下面的字母。在这种情况下,它应该打印T1 T2 T3——而不是只打印T1。知道哪里出了问题吗?

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

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

当您执行
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]
corpus=“T1T2T3”
对于idx,枚举(语料库)中的字符:
如果字符=='T'和(idx+1)
string.index仅获取字符串中第一次出现的字符。您可以指定所需的引用编号;你必须保持这个

或者,也许这就是您的想法,通过索引逐步完成

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

regexThanks的完美任务——帮了我很多忙!