在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的完美任务——帮了我很多忙!