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

如何从给定列表中随机选2个元素生成互不相等的列表A与列表B

Python实现代码

默认满足以下规则:

  • 单个列表内的2个元素为无放回抽取,不会重复
  • 两个列表只要元素完全相同(无论顺序)都判定为「完全相等」,不符合要求
    如果需要调整规则可以修改对应逻辑。

方案1:简单循环实现(新手友好)

# 导入随机数模块
import random

# 定义原始国家列表
country = ["Australia", "America", "England", "Spain"]

# 随机无放回抽取2个元素生成列表A
A = random.sample(country, k=2)

# 循环生成列表B,直到和A不完全相等
while True:
    B = random.sample(country, k=2)
    # 排序后比较可忽略顺序,判断两个列表元素是否完全一致
    if sorted(A) != sorted(B):
        break

# 验证结果
print("列表A:", A)
print("列表B:", B)
  • random.sample(序列, k=数量)为无放回随机抽样方法,天然保证单个列表内不会出现重复元素
  • 由于总可能的2元素组合仅有6种,循环逻辑最坏情况也只会执行几次,无性能问题

方案2:预生成所有组合实现(性能更优)

适合原始列表元素较多的场景,无需循环即可保证两个列表不相等:

import random
from itertools import combinations

country = ["Australia", "America", "England", "Spain"]
# 生成所有无放回抽取2个元素的不重复组合
all_combinations = list(combinations(country, 2))
# 随机选取两个不同的组合分别转为列表
A, B = map(list, random.sample(all_combinations, k=2))

规则调整说明

  • 如果需要允许单个列表内出现重复元素(有放回抽样):将random.sample(country, k=2)替换为random.choices(country, k=2)即可
  • 如果认为元素顺序不同就算两个列表不相等:将方案1中的sorted(A) != sorted(B)改为A != B即可

内容的提问来源于stack exchange,提问作者Hossein.gh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 07:15:04