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

如何用Python random模块生成按元组首元素去重的随机列表?

实现方法

思路拆解

  1. 分组归类:先把原始列表里首元素相同的元组归为一组,让每个首元素对应它所有可能的第二个元素集合。
  2. 随机抽取:对每个首元素对应的集合,用random.choice()随机挑一个元素。
  3. 结果汇总:把每个首元素选中的元素收集成列表——原始数据里刚好有5个不重复的首元素,所以最终列表自然是5个元素,且每次运行结果不同。

代码实现

import random

original_list = [('Anger', 'Envy'), ('Anger', 'Exasperation'), ('Joy', 'Zest'), ('Sadness', 'Suffering'), ('Joy', 'Optimism'), ('Surprise', 'Surprise'), ('Love', 'Affection')]

# 按首元素分组
grouped = {}
for key, value in original_list:
    if key not in grouped:
        grouped[key] = []
    grouped[key].append(value)

# 对每个分组随机选一个元素,生成结果列表
random_list = [random.choice(values) for _, values in grouped.items()]

print(random_list)

代码说明

  • 分组阶段:用字典grouped存储每个首元素对应的所有第二个元素,比如grouped['Anger']会得到['Envy', 'Exasperation']。
  • 随机选择阶段:通过列表推导式遍历字典的每个值,用random.choice()随机选一个,确保每个首元素只对应一个值,且每次运行的选择结果都不一样。
  • 运行示例:可能输出['Exasperation', 'Optimism', 'Suffering', 'Surprise', 'Affection']或['Envy', 'Zest', 'Suffering', 'Surprise', 'Affection']等不同结果,完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 05:55:30