Ho un oggetto dizionario Python che sembra un po 'come questo:occorrenze conteggio di ogni chiave nel dizionario Python
[{"house": 4, "sign": "Aquarius"},
{"house": 2, "sign": "Sagittarius"},
{"house": 8, "sign": "Gemini"},
{"house": 3, "sign": "Capricorn"},
{"house": 2, "sign": "Sagittarius"},
{"house": 3, "sign": "Capricorn"},
{"house": 10, "sign": "Leo"},
{"house": 4, "sign": "Aquarius"},
{"house": 10, "sign": "Leo"},
{"house": 1, "sign": "Scorpio"}]
Ora, per ogni tasto 'segno', mi piacerebbe contare quante volte si verifica ogni valore .
def predominant_sign(data):
signs = [k['sign'] for k in data if k.get('sign')]
print len(signs)
Questo, tuttavia, stampe Numero di volte 'segno' compare nel dizionario, invece di ottenere il valore della sign
e contando il numero di volte in cui compare un particolare valore.
Ad esempio, l'output mi piacerebbe vedere è:
Aquarius: 2
Sagittarius: 2
Gemini: 1
...
E così via. Cosa dovrei cambiare per ottenere l'output desiderato?
si desidera che il risultato sia in alcun ordine particolare? – thefourtheye
@thefourtheye, non proprio. Qualsiasi ordine va bene Le due risposte seguenti hanno fatto il trucco in poco tempo. :) – Newtt
Inoltre, hai una lista di dizionari Python :-) – thefourtheye