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

如何按共同ID分组打印关联的字符串值?

解决方案

你可以通过字典分组的方式来实现这个需求,比嵌套循环更简洁高效:

步骤说明

  1. 用字典存储每个ID对应的颜色列表,键为清理掉前后空格的ID(避免因空格导致分组错误),值为颜色列表;
  2. 遍历原始数据,将每个颜色归类到对应ID的列表中;
  3. 最后将字典中的条目格式化为目标字符串,再拼接成最终结果。

代码实现

# 原始数据
data = [['108-002 ', 'BLACK'], ['108-002 ', 'WHITE'], ['108-002 ', 'RED'], ['108-002 ', 'GREEN'], ['110-003 ', 'GREEN'], ['110-003 ', 'RED'], ['110-004 ', 'RED'], ['110-004 ', 'BLACK'], ['110-004 ', 'PURPLE']]

# 初始化字典用于分组
color_groups = {}
for item in data:
    # 清理ID前后的空格,保证分组准确性
    id_num = item[0].strip()
    color = item[1]
    # 若ID不在字典中则创建新列表,否则直接追加颜色
    if id_num not in color_groups:
        color_groups[id_num] = []
    color_groups[id_num].append(color)

# 生成目标格式的字符串
result = "; ".join([f"{id} had {', '.join(colors)}" for id, colors in color_groups.items()])

print(result)

输出结果

108-002 had BLACK, WHITE, RED, GREEN; 110-003 had GREEN, RED; 110-004 had RED, BLACK, PURPLE

如果使用Python 3.9+,还可以用dict.setdefault()简化分组逻辑:

color_groups = {}
for item in data:
    id_num = item[0].strip()
    color = item[1]
    # setdefault自动处理不存在的键,直接返回对应列表
    color_groups.setdefault(id_num, []).append(color)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 04:01:44