如何定义For循环实现字符串的连续双字符迭代遍历?
问题
已知代码:
list1 = ['ABCDE'] for x in list1: print(x)
执行后输出ABCDE(注:原描述中“逐个输出A、B、C、D、E”为表述误差,原代码实际会直接输出整个字符串)。
需要修改循环中的???部分,让代码执行后输出:
AB BC CD DE
实现方案
方案1:直接遍历索引生成子串
修改后的代码:
list1 = ['ABCDE'] for i in range(len(list1[0]) - 1): print(list1[0][i:i+2])
方案2:先生成子串列表再遍历
如果更贴合原代码“遍历目标元素”的结构,可以先预生成所有连续双字符子串的列表,再循环打印:
list1 = ['ABCDE'] target_str = list1[0] for pair in [target_str[i:i+2] for i in range(len(target_str)-1)]: print(pair)
原理说明
原列表list1仅包含一个字符串元素'ABCDE',要生成连续双字符子串,核心逻辑是:
- 先取出列表中的字符串
target_str = list1[0] - 遍历字符串的索引,范围是
0到len(target_str)-2(保证i+2不超出字符串长度) - 每次通过切片
target_str[i:i+2]截取从索引i开始的2个字符,得到AB、BC这类连续组合
内容的提问来源于stack exchange,提问作者Jorge Gandara
相关产品推荐
相关产品推荐

