Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2714 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  [Python] Occurence d'une liste

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Python] Occurence d'une liste

n°2251423
darkomac
Posté le 22-02-2015 à 17:03:54  profilanswer
 

Bonjour,
 
Après beaucoup de temps passé dessus, j'ai décidé de venir demander de l'aide.  
 
Sujet:
"Au second tour des élections, le candidat ayant obtenu le plus de voix est élu. S’il y a égalité de voix, tous les candidats ayant obtenu le plus de voix sont élus.
a) Écrire la fonction gagnant_tour2(vote) qui retourne dans un tableau les gagnants du second tour. On prendra garde à ne faire apparaître qu’une seule fois le nom des gagnants dans la liste finale. On se contentera d’une fonction faisant le calcul en temps quadratique par rapport à n."
 
Code:
 

Code :
  1. from collections import Counter
  2. def gagnant_tour2(vote):
  3.     L=[]
  4.     A=Counter(vote).most_common(len(vote))
  5.     for k in range(0,len(vote)+1):
  6.         y=A[k][1]
  7.         if A[0][1]>A[1][1]:
  8.             return A[0][0]
  9.         elif y==A[0][1]:
  10.             L.append(A[k][0])
  11.         return L


 
Merci d'avance, je ne sais pas comment procéder de manière vraiment "élégante".

mood
Publicité
Posté le 22-02-2015 à 17:03:54  profilanswer
 

n°2251439
masklinn
í dag viðrar vel til loftárása
Posté le 22-02-2015 à 21:19:46  profilanswer
 

1. le contenu de `vote` n'est pas clair, c'est quoi?
2. que ce soit un mapping ou pas, la manière dont tu utilises Counter n'a pas d'intérêt.
3. sauf si tu copies un algo existant et que tu veux te coller au plus près au texte, variables en minuscules, nommées avec un minimum de sens (pq "L", "y" et "A" dans le contexte ça ne veut rien dire du tout)

 

De la manière dont je voix ce truc, utiliser Counter est finaud: avec most_common(1) il va te donner le nombre de voix qu'a eu le "premier" candidat, ensuite tu peux juste filtrer counter.items() pour ne garder que les candidats ayant le même nombre de voix que le maximum.


Message édité par masklinn le 22-02-2015 à 21:20:46

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  [Python] Occurence d'une liste

 

Sujets relatifs
déverser des éléments d'une liste à l'autreCréer une animation en python
[RESOLU (et toute seule en plus)] Python 3.2 Comment utiliser les set?[Python] Django et sessions
TRI TABLEAU à partir liste déroulante[python] syntaxe execution programme externe
[Python] Checkbox et condition - Récupération de variableCréation d'une liste d'éléments liés à un id input
projet de programmation (ISN) (python 3.4)Affichage sous-liste
Plus de sujets relatifs à : [Python] Occurence d'une liste


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR