Dictionnaire / Counter

a marqué ce sujet comme résolu.

Bonsoir, c’est mon premier sujet donc j’ai a disposition un fichier "text.txt" (qui simule le résultat de la commande LAST qui liste les jours de connexion des utilisateurs qui ont fréquenté une machine) et je dois lister tout les login pour cela j’ai fais :

import re , collections
cpt = collection.Counter()
newdic = dict()
fichier = open("text.txt","r")
for line in fichier
login = re.search("^\S+",line)
if login :
  print( "Afficher le login:" , login.group())
cpt[login]+=1 # ca me donne Counter ( {'Dupond' : 5 ,'Jean' : 3, 'Christophe ':2})
Maintenant mon problème c'est que je veux mettre ce Counter dans un dictionnaire j'ai fais ça mais sa ne marche pas :
if login not in newdic.keys():
   newdic[login] = list()

si quelqu’un peut m’aider s’il vous plait merci d’avance

+0 -0

Yo, tu pourrais mettre ton code Python dans un bloc code comme celui qui suit ?

```python
import re
import collections
cpt = collections.Counter()
```

Ce qui donnera le rendu suivant :

import re
import collections
cpt = collections.Counter()

Ça nous aiderait à mieux lire ton code.

+1 -0

Autant faire la présentation complète :

import re 
import collections
cpt = collection.Counter() 
newdic = dict() 
fichier = open("text.txt","r") 
for line in fichier login = re.search("^\S+",line) 
if login : print( "Afficher le login:" , login.group()) 
cpt[login]+=1 # 

Counter ( {’Dupond' : 5 ,’Jean' : 3, 'Christophe ':2}) 

if login not in newdic.keys(): newdic[login] = list()
+1 -0

si quelqu’un peut m’aider s’il vous plait merci d’avance

Ana345

Je veux bien mais je ne comprends pas ce que tu veux mettre dans ton dictionnaire. Un objet Counter est déjà un dictionnaire.

Quelles valeurs veux-tu associer à quelles clés dans ton nouveau dictionnaire ?

Pourquoi as-tu besoin de le copier vers un nouveau dictionnaire ?

newdic = dict(cpt.copy())

andre9642

La méthode copy crée une copie, et le constructeur de dict aussi, donc ici tu en crées 2. Il faudrait n’utiliser que l’un ou l’autre.

Super merci beaucoup, juste une question si quelqu’un pourrait bien m’expliquer ce que font les deux derniers lignes s’il vous plait

Ana345

Elles associent une nouvelle liste vide à la clé référencée par la variable login dans newdic, si la clé n’est pas déjà présente.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte