J'essaie de suivre des éléments vus, d'un grand tableau, en utilisant un dict. Existe-t-il un moyen de forcer un objet de dictionnaire d'être entier et de se mettre à zéro par défaut lors de l'initialisation?
Je l'ai fait avec des codes très maladroits et deux boucles. p>
Voici ce que je fais maintenant: p>
3 Réponses :
Bien sûr, il suffit d'utiliser De plus, si vous n'aimez pas importer aussi, si vous voulez seulement résoudre le problème et que vous ne vous dérangerez pas d'utiliser exactement em> dictionnaires que vous pouvez utiliser Collections.DefaultDict ([ default_factory [ ...]]]]) code> : collections code> vous pouvez Utilisez dict.get (touche [ défaut]) code> p> collection.Counter ([itérable-ou-mapping]) : P> from collections import Counter
fl = [0, 1, 1, 2, 1, 3, 4]
seenit = Counter(f)
print(seenit)
# Output
Counter({1: 3, 0: 1, 2: 1, 3: 1, 4: 1})
print(dict(seenit))
# Output
{0: 1, 1: 3, 2: 1, 3: 1, 4: 1}
Merci. Ce débutant apprécie toute l'aide. J'aime la solution par défaut et ira avec cela.
@giggleusa Si vous trouvez cela ou une autre réponse utile, vous devez envisager d'accepter la réponse en tant que correcte (appuyer sur la marque GREY sous le bouton Downvote). Vous recevrez 2 réputation d'accepter un. Sinon, votre question restera sans réponse i>.
Vous pouvez utiliser sortie: p> Vous pouvez ensuite l'adresser Comme un dictionnaire: p> collections.Counter code>:
Utilisation de pour les plus grandes listes, compteur finira éventuellement surperformer toutes les autres approches. et Val dans vu code> est un peu plus rapide que .get () code>: defaultDict code> va être plus rapide que d'utiliser .get () code> ou val connecté code>. EM> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> >
"forcer un dictionnaire ... défini sur zéro par défaut lors de l'initialisation" i> -
defaultDict code>Il y a
vu = dict.fromkeys (fl, 0) code> pour remplacer la première boucle, mais les réponses actuelles fournissent de meilleures solutions pour remplacer les deux boucles en même temps.