Python:如何用for in循环对列表字符串元素及字符进行切片遍历
问题解决
原代码问题点
你的代码逻辑存在明显偏差:
- 内层循环重复使用
name变量,直接覆盖了外层的名字变量,导致逻辑混乱 - 全局的
index会在循环中累加,处理后续名字时起始位置错误 - 内层的判断逻辑完全不符合“遍历所有字符”的需求,自然无法得到期望输出
正确实现(仅用for in循环)
要实现每个列表元素打印后,以空格分隔打印其所有字符的效果,用两层for in循环即可,不需要额外的index变量:
people = ['Vianney', 'Mariana', 'Ignacio', 'Gaspar'] for name in people: # 先打印完整名字 print(name) # 遍历每个字符,以空格分隔打印 for char in name: print(char, end=' ') # 换行+空行分隔不同条目 print('\n')
如果想避免字符末尾多一个空格,让格式更工整,可以用列表收集字符后再拼接:
people = ['Vianney', 'Mariana', 'Ignacio', 'Gaspar'] for name in people: print(name) chars = [] for char in name: chars.append(char) print(' '.join(chars)) print()
输出结果
运行后会得到你想要的格式:
Vianney V i a n n e y Mariana M a r i a n a Ignacio I g n a c i o Gaspar G a s p a r
内容的提问来源于stack exchange,提问作者sendog3c
相关产品推荐
相关产品推荐

