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

Python实现按元组第二个元素分组并拼接第一个元素

按元组第二个元素分组并拼接第一个元素的实现方法

原始输入列表:

a = [('name', 'color'),('fruit', 'color'),('thing', 'type'),('sport', 'type')]

期望输出:

[('name fruit', 'color'),('thing sport', 'type')]

方法一:使用collections.defaultdict(推荐)

借助defaultdict可以更简洁地完成分组操作:

from collections import defaultdict

a = [('name', 'color'),('fruit', 'color'),('thing', 'type'),('sport', 'type')]

# 初始化分组字典,默认值为列表
grouped = defaultdict(list)
for item, category in a:
    grouped[category].append(item)

# 拼接每组元素并生成结果列表
result = [(' '.join(items), category) for category, items in grouped.items()]
print(result)

方法二:使用普通字典实现

如果不想导入额外模块,用基础字典也能实现:

a = [('name', 'color'),('fruit', 'color'),('thing', 'type'),('sport', 'type')]

grouped = {}
for item, category in a:
    # 若分类不存在则创建空列表
    if category not in grouped:
        grouped[category] = []
    grouped[category].append(item)

# 生成结果
result = [(' '.join(items), category) for category, items in grouped.items()]
print(result)

代码说明

  • 第一步都是按元组第二个元素(分类)分组,把同分类的第一个元素收集到列表中
  • 第二步通过' '.join(items)把同组的元素用空格拼接成字符串,再和分类组成新元组,最终整理成目标格式的列表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 14:25:30