You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何接收多个姓名输入拆分后合并为单个一维列表

问题原因

你当前的代码存在两个核心逻辑问题:

  • 循环过程中每次都直接对name变量重新赋值,之前轮次输入拆分的结果会被直接覆盖,最终打印时只能保留最后一次输入的拆分结果
  • 如果直接用append()方法追加split()的返回值,由于split()执行后返回的本身是存储姓、名的子列表,append()会把整个子列表作为单个元素存入外层列表,最终会生成嵌套的列表结构,无法得到扁平列表。
修复方案

首先在循环外初始化一个空列表作为最终结果的存储容器,每次拆分完单条姓名后,使用extend()方法将拆分得到的姓、名元素逐个追加到结果列表中即可——extend()会把传入序列里的每个元素单独存入列表,不会产生嵌套。

修复后的完整代码:

# 初始化空的扁平结果列表
result = []
inp = int(input("Enter the no.of names"))

for i in range(inp):
    # 拆分当前输入的姓名,得到[名, 姓]格式的临时列表
    name_parts = input("Enter the names").split(" ")
    # 将临时列表的元素逐个加入结果列表
    result.extend(name_parts)

print(result)

效果验证

当你输入姓名数量为3,依次输入Christiano Ronaldo、Harry Potter、Lionel Messi时,最终打印结果正好符合预期:
['Christiano', 'Ronaldo','Harry','Potter', 'Lionel', 'Messi']

如果你习惯用append()方法,也可以拆分后分别追加姓和名两个元素,效果和extend()一致:

for i in range(inp):
    first_name, last_name = input("Enter the names").split(" ")
    result.append(first_name)
    result.append(last_name)

内容的提问来源于stack exchange,提问作者Abhilasha Tripathi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 19:57:31