Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Get all possible combinations from a list as tuples

Context: I’m learning python and I’m trying to make permutations without using itertools. I have a list with 3 football teams and I’d like to make all possible matches between them (so with 3 teams from the team list, we would have 6 possible matches, 4 teams would be 12 matches, etc).

I was trying to do something like this:

team = ["FCP", "SCP", "SLB"]

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

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)

Desired output would be something like this:

[('FCP','SCP'), ('FCP','SLB'), ('SCP','FCP'), ...]

Thank you in advance

>Solution :

This would fix your code:

team = ["FCP", "SCP", "SLB"]
def allMatches(lst):
    teams = []
    for element_list1 in lst:
        for element_list2 in lst:
            if element_list1 != element_list2:
                teams.append(tuple((element_list1, element_list2)))
    return teams

allMatches(team)

It would be even nicer with a list comprehension:

team = ["FCP", "SCP", "SLB"]
def allMatches(lst):
    return [(el1, el2) for el1 in lst for el2 in lst if el1!=el2]
    

allMatches(team)
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading