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

Python中如何合并两数组生成新列表并模拟数组左外连接?

Python 数组合并与左外连接模拟

一、普通数组合并方法

如果只是简单将两个数组合并成一个新列表,有几种常用方式:

  • 直接使用+运算符:
    combined = array + array2
    
    这会把array和array2的元素按原有顺序拼接成新列表。
  • 使用extend()方法(注意会修改原列表,建议先拷贝):
    array_copy = array.copy()
    array_copy.extend(array2)
    
  • 列表推导式(效果和+一致,适合需要额外处理元素的场景):
    combined = [x for x in array] + [x for x in array2]
    

二、模拟左外连接生成目标列表

针对你给出的需求,我们可以分两步实现:

  1. 提取array2中存在于array的元素,将每个元素与自身拼接;
  2. 提取array中不存在于array2的元素,将每个元素与下划线拼接;
  3. 合并这两部分结果。

完整代码示例:

array = ['a', 'b', 'c', 'd', 'e']
array2 = ['a', 'a', 'f', 'g', 'b']

# 处理array2中匹配array的元素
matched = [f"{item}{item}" for item in array2 if item in array]
# 处理array中未匹配的元素(用set提升查找效率)
unmatched = [f"{item}_" for item in array if item not in set(array2)]
# 合并得到最终结果
opt = matched + unmatched

print(opt)  # 输出:['aa', 'aa', 'bb', 'c_', 'd_', 'e_']

这里用set(array2)做成员检查,是因为集合的查找效率远高于列表,当数组规模较大时能显著提升性能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 03:50:24