Python入门:如何区分字符串重复字符并实现垂直并排输出
问题分析与修正方案
你的代码核心问题出在string1.index(letter)这个用法上:index()方法只会返回字符第一次出现的索引,所以Hello里的两个l都会拿到索引2,对应World里的r,自然输出重复的错误结果。
下面给你两种简单的修正方法:
方法1:按索引遍历(直观易懂)
直接通过字符串的索引来逐个取对应位置的字符,因为两个字符串等长,索引范围一致:
string1 = 'Hello' string2 = 'World' # 遍历每个索引位置 for i in range(len(string1)): print(f"{string1[i]} {string2[i]}")
方法2:用zip()配对字符(更Pythonic)
zip()函数会自动把两个等长字符串的对应位置字符打包成元组,遍历的时候直接拿到每一对字符:
string1 = 'Hello' string2 = 'World' # 直接遍历配对后的字符对 for char1, char2 in zip(string1, string2): print(f"{char1} {char2}")
两种方法都能得到你想要的预期输出:
H W e o l r l l o d
以后处理需要对应位置操作的字符串时,尽量避免用index()找字符位置,尤其是字符串里有重复字符的场景,index()的特性会导致逻辑出错。
内容的提问来源于stack exchange,提问作者Idontpaythe1
相关产品推荐
相关产品推荐

