如何在Python中打印列表的可能组合?

如何在Python中打印列表的可能组合?,python,loops,Python,Loops,我的名单是: groupA=['Russia', 'Egypt', 'Saudi Arabia', 'Uruguay'] 因此,我想打印所有相互比赛的球队的独特组合: Russia Vs. Egypt Russia Vs. Saudi Arabia Russia Vs. Uruguay Egypt Vs. Saudi Arabia Egypt Vs. Uruguay Saudi Arabia Vs. Uruguay 我可以用for循环执行此操作吗?这应该可以满足您的要求: groupA=['

我的名单是:

groupA=['Russia', 'Egypt', 'Saudi Arabia', 'Uruguay']
因此,我想打印所有相互比赛的球队的独特组合:

Russia Vs. Egypt
Russia Vs. Saudi Arabia
Russia Vs. Uruguay
Egypt Vs. Saudi Arabia
Egypt Vs. Uruguay
Saudi Arabia Vs. Uruguay

我可以用for循环执行此操作吗?

这应该可以满足您的要求:

groupA=['Russia', 'Egypt', 'Saudi Arabia', 'Uruguay']

for i in range(len(groupA)):
  for j in range(i+1, len(groupA)):
    print("{} Vs. {}".format(groupA[i], groupA[j]))
如果您喜欢使用itertools:

from itertools import combinations

groupA=['Russia', 'Egypt', 'Saudi Arabia', 'Uruguay']

for combo in combinations(groupA, 2):
  print("{} Vs. {}".format(combo[0], combo[1]))

这应该满足您的要求:

groupA=['Russia', 'Egypt', 'Saudi Arabia', 'Uruguay']

for i in range(len(groupA)):
  for j in range(i+1, len(groupA)):
    print("{} Vs. {}".format(groupA[i], groupA[j]))
如果您喜欢使用itertools:

from itertools import combinations

groupA=['Russia', 'Egypt', 'Saudi Arabia', 'Uruguay']

for combo in combinations(groupA, 2):
  print("{} Vs. {}".format(combo[0], combo[1]))
这可以做到:

groupA = ['Russia', 'Egypt', 'Saudi Arabia', 'Uruguay']
for index, country in enumerate(groupA):
    for rival in groupA[index+1:]:
        print('%s vs %s'%(country, rival) )
这可以做到:

groupA = ['Russia', 'Egypt', 'Saudi Arabia', 'Uruguay']
for index, country in enumerate(groupA):
    for rival in groupA[index+1:]:
        print('%s vs %s'%(country, rival) )

每当您想到排列、组合、笛卡尔积等时,请想到
itertools
库;它是Python的标准。如果它不在里面,那就看一看


格式
也是一种很好的输出选择。

每当你想到排列、组合、笛卡尔积等,就想到
itertools
库;它是Python的标准。如果它不在里面,那就看一看


格式
也是一种很好的输出选择。

您可以使用双for循环。使用我很无聊,所以很高兴编写此代码,但不要忘记,将来您应该先自己尝试。您可以使用双for循环。使用我很无聊,所以很高兴编写此代码,但是别忘了,你应该先尝试一下自己。没有必要提取长度,如果你多次使用列表的长度,你应该强烈地考虑一个变量来存储它。@是的,有多种方法来解决这个问题。不要存储不止一次使用的值是不好的做法。不需要提取长度,如果你多次使用列表的长度,你应该强烈地考虑存储它的变量。@是的,有多种方法来解决这个问题。不存储将被多次使用的值是一种不好的做法。我本来打算投反对票,因为它与我的答案重复,但我喜欢你如何解包组合,它比我的方法更干净。抱歉!我错过了你答案的第二部分。别担心,你的答案有进步。我决不投反对票!我本来打算投反对票,因为我的答案是重复的,但我喜欢你打开组合的方式,这比我的方法更干净。抱歉!我错过了你答案的第二部分。别担心,你的答案有进步。我决不投反对票!