
本文讲解如何仅用嵌套 `for` 循环(不使用索引、切片或额外库)遍历字符串列表,先打印每个姓名,再将其拆解为单个字符并以空格分隔输出。
在 Python 中,字符串是可迭代对象,可直接用 for char in string 遍历其每个字符;同理,列表也可直接用 for item in list 遍历每个元素。因此,要实现“对列表中每个字符串元素,再对其每个字符分别处理”,最简洁、符合 Python 风格的方式就是使用两层 for 循环——外层遍历姓名列表,内层遍历当前姓名的每一个字符。
以下是标准实现代码:
people = ['Vianney', 'Mariana', 'Ignacio', 'Gaspar']
for name in people:
print(name) # 打印完整姓名,独占一行
for char in name:
print(char, end=' ') # 每个字符后接空格,不换行
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
⚠️ 注意事项:
- 原代码中混用了变量名 name(外层循环变量)和内层循环变量,导致内层 for name in name1: 实际覆盖了外层 name,引发逻辑混乱和不可预期行为;应始终使用语义清晰、作用域隔离的变量名(如 char, c, letter)。
- end=' ' 控制 print() 不自动换行,但需在内层循环结束后显式调用 print()(无参数)来插入换行符,否则所有字符将连成一行。
- 本方案完全避免索引操作和切片语法(如 name[0:3] 或 name[i]),纯粹依赖 for ... in 的迭代机制,严格满足题目“仅用 for in”的要求。
总结:掌握可迭代对象的嵌套遍历是 Python 基础中的关键能力。面对字符串列表这类典型结构,优先考虑直接迭代而非下标访问,代码更安全、可读性更高,也更符合 Python 的“简单优于复杂”哲学。










