【发布时间】:2021-11-17 06:21:59
【问题描述】:
上下文:我正在学习 python,我正在尝试在不使用 itertools 的情况下进行排列。我有一个包含 3 支足球队的列表,我想在它们之间进行所有可能的比赛(因此,对于 team 列表中的 3 支球队,我们将有 6 支可能的比赛,4 支球队将是 12 场比赛,等等)。
我试图做这样的事情:
团队 = [“FCP”、“SCP”、“SLB”]
def allMatches(lst):
teams = []
for index in range(0,len(lst)-1):
for element in lst:
if teams[index][0] != teams[index][1]: #I was trying to make it so that tuples that have the same team are excluded - ('FCP','FCP') would not be appended for example, but I'm calling teams when it has 0 items appended so this won't do nothing
teams.append(tuple((element,team[index-1])))
return teams
allMatches(team)
期望的输出是这样的:
[('FCP','SCP'), ('FCP','SLB'), ('SCP','FCP'), ...]
提前谢谢你
【问题讨论】:
-
你直接写六个可能的匹配还不够吗?
[(team[0], team[1]), (team[0], team[2]), ...] -
以后请先尝试搜索解决方案。在您的情况下,就像输入
python combinationsinto a search engine 一样简单。 -
@KarlKnechtel 谢谢,我发现的大多数解决方案都使用了 itertools,我试图寻找尽可能“原版”的东西。
-
该问题也有各种以前的重复,此外还有更多关于 Internet 其余部分的指导。试试
python combinations without itertools。 -
会做的,谢谢你的帮助!
标签: python