Ho una lista di parole in un dizionario con il valore = la ripetizione della parola chiave, ma io voglio solo un elenco di parole distinte così ho voluto contare il numero di parole chiave. C'è un modo per contare il numero di parole chiave o c'è un altro modo per cercare parole distinte?Conteggio del numero di parole chiave in un dizionario in python
129
A
risposta
229
len(yourdict.keys())
o semplicemente
len(yourdict)
Se vi piace contare parole uniche nel file, si potrebbe utilizzare set
e fare come
len(set(open(yourdictfile).read().split()))
15
Il numero di parole distinte (cioè conteggio delle voci del dizionario) possono essere trovati utilizzando la funzione len()
.
> a = {'foo':42, 'bar':69}
> len(a)
2
Per ottenere tutte le parole distinte (cioè i tasti), usa il metodo .keys()
.
> list(a.keys())
['foo', 'bar']
+0
molto piacevole. Grazie mille per l'aiuto! – Dan
0
Se la domanda riguarda contando il numero di parole chiave, allora consiglierei qualcosa come
0.123.def countoccurrences(store, value):
try:
store[value] = store[value] + 1
except KeyError as e:
store[value] = 1
return
nella funzione principale hanno qualcosa che scorre i dati e passare i valori di funzione countoccurrences
if __name__ == "__main__":
store = {}
list = ('a', 'a', 'b', 'c', 'c')
for data in list:
countoccurrences(store, data)
for k, v in store.iteritems():
print "Key " + k + " has occurred " + str(v) + " times"
Le uscite di codice
Key a has occurred 2 times
Key c has occurred 2 times
Key b has occurred 1 times
So che questo post è vecchio, ma ero curioso. È questo il metodo più veloce? Oppure: è * un * metodo abbastanza veloce per i dizionari di grandi dimensioni? – theJollySin
Entrambi i '' len (yourdict.keys()) '' '' e '' 'len (yourdict)' '' sono O (1). Quest'ultimo è leggermente più veloce. Vedi i miei test qui sotto. –
vorrei sottolineare che si può anche andare per i valori (So che la domanda non ha chiesto esso) con 'len (yourdict.values ())' – ntk4