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

基于列表2索引值合并列表1元素的技术实现需求

列表合并解决方案

问题描述

给定两个列表:

  • 列表1:['GL50IILW', 'GL50IILW', 'NLR1R1RXCH', 'NNH0NNB7', 'QB2XP6MCH', 'QB2XP6MCH', 'KLEESZA1CH', 'KLEESZA1CH', 'UL50IALW', 'UL50IALW', 'UL50IALW', 'BHFFZA', 'BHFFZA', 'BHFFZA']
  • 列表2:[2, 2, 2, 2, 3, 3]

需要依据列表2的索引对应数值,对列表1的元素进行合并处理,得到目标输出:
['GL50IILW,GL50IILW','NLR1R1RXCH,NLR1R1RXCH','QB2XP6MCH,QB2XP6MCH','KLEESZA1CH,KLEESZA1CH','UL50IALW,UL50IALW,UL50IALW','BHFFZA,BHFFZA,BHFFZA']

规则解析

  1. 从列表1中提取所有唯一元素(保留首次出现的顺序),过滤掉无对应输出的元素(如示例中的NNH0NNB7);
  2. 将过滤后的唯一元素与列表2的数值按索引一一配对,每个元素重复对应数值的次数后,用逗号连接成字符串;
  3. 把所有连接后的字符串组合成最终列表。

实现代码

list1 = ['GL50IILW', 'GL50IILW', 'NLR1R1RXCH', 'NNH0NNB7', 'QB2XP6MCH', 'QB2XP6MCH', 'KLEESZA1CH', 'KLEESZA1CH', 'UL50IALW', 'UL50IALW', 'UL50IALW', 'BHFFZA', 'BHFFZA', 'BHFFZA']
list2 = [2, 2, 2, 2, 3, 3]

# 提取列表1的唯一值并过滤指定元素
unique_values = [val for val in dict.fromkeys(list1) if val != 'NNH0NNB7']
# 按列表2的数值重复元素并拼接成目标格式
result = [','.join([val] * count) for val, count in zip(unique_values, list2)]

print(result)

代码说明

  • dict.fromkeys(list1):快速提取列表1的唯一元素,同时保留元素首次出现的顺序;
  • 列表推导式过滤掉不需要的NNH0NNB7元素;
  • zip(unique_values, list2):将过滤后的唯一元素与列表2的数值按索引配对;
  • ','.join([val] * count):将单个元素重复指定次数后,用逗号连接成目标格式的字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 10:30:28