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

如何编写列表元素的嵌套循环以避免重复元素组合?

解决队伍重复对阵的问题

你的当前代码会生成所有主客场的对阵组合,包括A vs B和B vs A这种重复的对阵。要实现每支队伍只对阵一次,可以用以下两种方法:

方法一:通过索引控制遍历范围

利用列表的索引,让主场队伍的索引始终小于客场队伍的索引,这样就能避免反向对阵出现:

team=['Dragons','Wolves','Nightriders','Lords']
for i in range(len(team)):
    # 从i+1开始遍历,确保每对只匹配一次
    for j in range(i + 1, len(team)):
        print(team[i], "vs", team[j])

方法二:使用itertools.combinations(推荐)

Python的itertools模块提供了combinations函数,专门用于生成无重复的元素组合,非常适合这种场景:

from itertools import combinations

team=['Dragons','Wolves','Nightriders','Lords']
# 生成所有长度为2的不重复组合
for match in combinations(team, 2):
    print(match[0], "vs", match[1])

输出结果

两种方法都会得到以下无重复的对阵:

Dragons vs Wolves
Dragons vs Nightriders
Dragons vs Lords
Wolves vs Nightriders
Wolves vs Lords
Nightriders vs Lords

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 15:30:56