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

Python如何获取数字列表中不含相同元素对的所有组合

解决方案

基础修改方案(兼容所有Python版本,无需额外依赖)

你只需要在原有双重循环的逻辑中增加一条相等判断,跳过两个元素值相同的场景即可,修改后代码如下:

nr_list = [1, 2, 3]
combinations = []
for a in nr_list:
    for b in nr_list:
        if a != b:
            pair = [a, b]
            combinations.append(pair)
print(combinations)

运行后输出结果为:
[[1, 2], [1, 3], [2, 1], [2, 3], [3, 1], [3, 2]]

你也可以用列表推导式简化写法,逻辑和上述代码完全一致:

nr_list = [1,2,3]
combinations = [[a,b] for a in nr_list for b in nr_list if a != b]

无序组合场景(仅保留不重复的无顺序配对)

如果你不需要保留不同顺序的配对(即[1,2]和[2,1]视为同一个,仅保留一次),可以直接调用Python标准库itertools的combinations方法实现:

from itertools import combinations
nr_list = [1, 2, 3]
result = [list(pair) for pair in combinations(nr_list, 2)]
print(result)

运行后输出结果为:
[[1, 2], [1, 3], [2, 3]]


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 13:45:03