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

将两个列表生成所有组合并插入_v_分隔符的最快捷方法

嵌入_v_分隔符的优雅实现方案

你已经实现笛卡尔积(全外连接)逻辑的前提下,不同技术栈的拼接写法都非常简洁,核心是直接对每一对匹配元素做字符串插入即可,以下是常见场景的实现:

Python

使用f-string拼接是可读性最高的写法,配合itertools.product可以一行生成完整结果:

from itertools import product

fname_list = ["Mike", "Dave", "Sarah"]
sname_list = ["Smith", "Thomas", "Hamilton"]

# 直接在推导式中插入分隔符
result = [f"{first}_v_{second}" for first, second in product(fname_list, sname_list)]

JavaScript

用flatMap+模板字符串可以避免嵌套循环返回二维数组的问题,代码非常简洁:

const fname = ["Mike", "Dave", "Sarah"];
const sname = ["Smith", "Thomas", "Hamilton"];

const result = fname.flatMap(first => sname.map(second => `${first}_v_${second}`));

Shell 文本处理

如果是处理纯文本文件的场景,用awk实现效率很高,不需要嵌套循环读文件:

# 假设f.txt存所有名、s.txt存所有姓,每行一个元素,已去掉表头
awk 'NR==FNR{name[NR]=$0;next} {for(i=1;i<=length(name);i++) print name[i]"_v_"$0}' f.txt s.txt

SQL 数据库场景

如果两张表存储对应列表,用CONCAT函数直接拼接即可:

SELECT CONCAT(fname_col, '_v_', sname_col) AS combined_name
FROM fname_table CROSS JOIN sname_table;

内容的提问来源于stack exchange,提问作者C. Cooney

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 02:33:02