Python实现遍历单词列表并输出每个单词的每个字母(保留原列表完整性)
解决方案
首先,你的原代码只遍历了列表的第一个元素l[0],所以只输出了"hello"的字母。我们可以调整代码来遍历所有单词,同时处理不确定数量的输入,并且完全保留原列表的完整性。
步骤1:处理不确定数量的输入
因为你不确定最终会输入多少个单词,我们可以用循环持续获取输入,直到用户主动停止(比如输入空行,或者在终端按下Ctrl+D/Ctrl+Z):
l = ['hello', 'world', 'monday'] # 持续获取输入,直到用户输入空行或结束输入 while True: try: word = input() # 如果输入空行,停止循环 if not word: break l.append(word) # 捕获EOFError,处理用户按下Ctrl+D/Ctrl+Z的情况 except EOFError: break
步骤2:遍历每个单词输出字母
接下来,我们遍历列表中的每一个单词,按照你想要的格式输出每个字母(空格分隔):
# 遍历列表中的每个单词 for word in l: # 将单词的每个字符用空格连接后打印,和你原输出格式一致 print(' '.join(char for char in word)) # 如果你偏好逐个打印的方式,也可以这样写: # for char in word: # print(char, end=' ') # print() # 打印完一个单词的字母后换行
步骤3:保留原列表用于后续长度计算
我们只是向列表中添加新单词,完全没有修改原有的元素或删除内容,所以原列表l的完整性得到了保留。后续你可以正常获取每个单词的长度:
# 示例:获取并打印每个单词的长度 print("\n--- 各单词长度信息 ---") for word in l: print(f"单词 '{word}' 的长度是 {len(word)}")
完整整合代码
把上面的部分整合起来,完整代码如下:
l = ['hello', 'world', 'monday'] # 处理不确定数量的输入 while True: try: word = input() if not word: break l.append(word) except EOFError: break # 遍历每个单词输出字母 for word in l: print(' '.join(char for char in word)) # 后续使用原列表获取长度(示例) print("\n--- 各单词长度 ---") for word in l: print(f"{word}: {len(word)}")
运行这段代码后,你可以输入任意数量的单词,输入空行或结束输入后,程序会依次输出每个单词的字母(空格分隔),最后还能查看每个单词的长度,完全满足你的需求。
内容的提问来源于stack exchange,提问作者chaft
相关产品推荐
相关产品推荐

