Comment trouver le nombre d'occurrences dans une liste de tuples en python ?

Active 18 octobre 2021    /    Viewed 483    /    Comments 0    /    Edit


Exemples de comment trouver le nombre d'occurrences dans une liste de tuples en python:

Créer une liste de tuples

Créons une liste de tuples :

mylist = [
('a', 'b', 'c',),
('a', 'b', 'c',),
('c', 'b', 'a',),
('a', 'b', ),
('a',)
]

notez que

type(mylist) 
type(mylist[0])

donne

<class 'list'>

et

<class 'tuple'>

respectivement

Trouver les occurrences de tuples

Pour trouver les occurrences de tuples dans une liste, une solution consiste à utiliser counter from collections

from collections import Counter

counter = Counter(e for e in mylist)

donne

Counter({('a', 'b', 'c'): 2, ('c', 'b', 'a'): 1, ('a', 'b'): 1, ('a',): 1})

Notez qu'ici ('a', 'b', 'c') et ('c', 'b', 'a') sont considérés comme des tuples différents.

Il est également possible de mettre les résultats des compteurs dans un dictionnaire :

d = dict( counter )

print( d )
print( d.keys() )
print( d[('a', 'b', 'c')] )

donne

{('a', 'b', 'c'): 2, ('c', 'b', 'a'): 1, ('a', 'b'): 1, ('a',): 1}
dict_keys([('a', 'b', 'c'), ('c', 'b', 'a'), ('a', 'b'), ('a',)])
2

Trouver les occurrences de tuples qui contiennent les mêmes éléments

Autre exemple, trouvez les occurrences de tuples qui contiennent les mêmes éléments. Donc ('a', 'b', 'c') == ('c', 'b', 'a')

from collections import Counter

counter = Counter(tuple(sorted(t)) for t in mylist)
print(counter)

donne

Counter({('a', 'b', 'c'): 3, ('a', 'b'): 1, ('a',): 1})

Trouver les occurrences d'éléments dans chaque tuple

Pour ne trouver que des occurrences d'éléments dans chaque tuple, une solution est de faire :

import itertools

mylist2 = list(itertools.chain.from_iterable(mylist) )

    print(mylist2)

donne

['a', 'b', 'c', 'a', 'b', 'c', 'c', 'b', 'a', 'a', 'b', 'a']

print( Counter(mylist2) )

donne

Counter({'a': 5, 'b': 4, 'c': 3})

Note: pour n'obtenir que des éléments uniques :

mylist2 = list( set(itertools.chain.from_iterable(mylist)) )
print(mylist2)

donne

['c', 'a', 'b']

Références


Card image cap
profile-image
Bazinga

Salut, je suis Ben.

J'ai développé ce site web à partir de zéro avec Django pour partager avec tout le monde mes notes. Si vous avez des idées ou des suggestions pour améliorer le site, faites le moi savoir ! (vous pouvez me contacter via le formulaire de la page d'accueil). Merci!



Did you find this content useful ?, If so, please consider donating a tip to the author(s). MoonBooks.org is visited by millions of people each year and it will help us to maintain our servers and create new contents.

Amount