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

如何使用List Comprehension合并两个列表?解决返回None问题

问题解析与正确实现方法

错误原因

list.append() 是原地修改列表的方法,它仅负责把元素添加到原列表末尾,本身返回值固定为None。你写的列表推导式 [list1.append(x) for x in list2],本质是遍历list2时收集每次append调用返回的None,所以最终得到全为None的列表;同时原list1会被修改为合并后的内容,但这不是你想要的独立列表list3。

正确实现方式

方法1:直接列表拼接(最简洁高效)

Python支持用+直接拼接两个列表,无需列表推导式:

list1 = ['a', 'b', 'c', 'd']
list2 = [1, 2, 3, 4]
list3 = list1 + list2

执行后list3即为['a', 'b', 'c', 'd', 1, 2, 3, 4],且不会修改原list1和list2。

方法2:用列表推导式实现(满足需求场景)

如果一定要用列表推导式,可通过嵌套遍历构建新列表:

list3 = [item for sublist in [list1, list2] for item in sublist]

也可拆分为两个推导式后拼接:

list3 = [x for x in list1] + [x for x in list2]

两种写法都能生成目标列表,且不改动原列表。

方法3:复制后扩展(实用非推导式写法)

先复制list1,再用extend批量添加list2的元素:

list3 = list1.copy()
list3.extend(list2)

内容的提问来源于stack exchange,提问作者Alin Khan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 15:57:08