Dans le dictionnaire python, si une clé inexistante est accédée, initialisez-la avec une valeur arbitraire

import collections
word_count = collections.defaultdict(int)
for word in ["foo", "bar", "foo", "foobar"]:
    word_count[word] += 1
print word_count
# >>> defaultdict(<type 'int'>, {'foobar': 1, 'foo': 2, 'bar': 1})

Si vous ne savez pas quelle clé est donnée au type de dictionnaire, il arrive souvent que si la clé n'existe pas, elle soit initialisée avec foo et collections.defaultdict la remplit. Si vous faites defaultdict (int), il sera initialisé à 0 au premier accès comme ↑, mais qu'est-ce que cela signifie après tout?

import collections
word_count = {}
for word in ["foo", "bar", "foo", "foobar"]:
    if not word in word_count:
        word_count[word] = int()
    word_count[word] += 1
print word_count

Le processus est le même que celui-ci. Après tout, c'est bien si c'est une fonction sans arguments et renvoie une valeur. Par conséquent, il est assez facile de comprendre si vous utilisez lambda et faites quelque chose comme defaultdict (lambda: []). ** Addendum: Dans l'exemple de génération de cette liste vide, il est plus facile de lire en passant list () sans utiliser lambda. Un exemple légèrement plus compliqué ci-dessous où lambda doit être utilisé. ** **

Si vous développez l'exemple précédent, vous pouvez compter la fréquence d'apparition de chaque alphabet.

import collections
word_count = collections.defaultdict(lambda: [0 for i in range(26)])
for word in ["foo", "bar", "foo", "foobar"]:
    for chara in word:
        word_count[word][ord(chara)-ord("a")] += 1
print word_count
# >defaultdict(<function <lambda> at 0x10e5147d0>, {'foobar': [1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0], 'foo': [0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'bar': [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0]})

defaultdict () lui-même renvoie également defaultdict, vous pouvez donc bien sûr utiliser defaultdict (defaultdict (lambda: {" name ":" null "," age ": 20})).

Recommended Posts

Dans le dictionnaire python, si une clé inexistante est accédée, initialisez-la avec une valeur arbitraire
Supprimer un caractère spécifique en Python s'il s'agit du dernier
Vérifiez si la chaîne est un nombre en python
Une note lors de la vérification si la clé spécifiée existe dans le dictionnaire défini avec python
Je veux initialiser si la valeur est vide (python)
[python] Comment vérifier si la clé existe dans le dictionnaire
Obtenir la valeur d'une clé spécifique jusqu'à l'index spécifié de la liste de dictionnaires en Python
Lors de la lecture d'une image avec SimpleITK, il y a un problème s'il y a du japonais dans le chemin
Lorsqu'une chaîne de caractères d'une certaine série se trouve dans la clé du dictionnaire, la chaîne de caractères est convertie en valeur du dictionnaire.
[Python] Temps d'exécution lorsqu'une fonction est saisie dans une valeur de dictionnaire
Une raison simple pour laquelle la valeur de retour de round (2.675,2) est de 2,67 en python (elle devrait être de 2,68 en réalité ...)
Hash en Perl est un dictionnaire en Python
[Python] Récupérez les fichiers dans le dossier avec Python
N'y a-t-il pas une valeur par défaut dans le dictionnaire?
Si vous les gars dans la cuisine de portée pouvez le faire avec une marge ~ ♪
[Python Data Frame] Lorsque la valeur est vide, remplissez-la avec la valeur d'une autre colonne.
Comment vérifier s'il est dans le type de dictionnaire (Dictionary, Hash) en utilisant tout ou partie
Vérifiez s'il s'agit d'Unix dans le langage de script
Déterminer si un attribut est défini dans l'objet
Comment vérifier en Python si l'un des éléments d'une liste est dans une autre liste
Vérifiez s'il s'agit d'Unix dans le langage de script
Il est facile d'exécuter SQL avec Python et de générer le résultat dans Excel
Comment savoir s'il y a une valeur dans "quelque part" de pandas DataFrame
Obtenez de manière récursive la liste Excel dans un dossier spécifique avec python et écrivez-la dans Excel.
Ce qui est plus rapide à utiliser l'instruction if ou le type de dictionnaire lors de la conversion d'une chaîne (a-> b) en Python
Comment vérifier si le contenu du dictionnaire est le même en Python par valeur de hachage
Un moyen simple de visualiser le temps pris en Python et un moyen plus intelligent de l'améliorer
Déterminer si la chaîne est l'heure avec une expression régulière python
Comment convertir un tableau en dictionnaire avec Python [Application]
Comment vérifier si une valeur existe dans un type d'énumération
Comment obtenir la dernière (dernière) valeur d'une liste en Python
Créer un dictionnaire en Python
[Python] Qu'est-ce qu'une tranche? Une explication facile à comprendre de son utilisation avec un exemple concret
[Python] Le rôle de l'astérisque devant la variable. Divisez la valeur d'entrée et affectez-la à une variable
Comment est le progrès? Continuons le boom ?? en Python
Python échouera s'il y a un espace après la barre oblique inverse
Jouez des sons en Python en supposant que le clavier est un clavier de piano
Vérifiez si le fichier de paramètres est lu de manière simple à comprendre
Comment déterminer qu'une clé croisée a été entrée dans Python3
Comment vérifier la taille de la mémoire d'un dictionnaire en Python
[Python] La valeur écrite par Openpyxl est affichée sous forme d'exposant (E).
Lisez le fichier en Python avec un chemin relatif depuis le programme
[Python] Comment obtenir une valeur avec une clé autre que value avec Enum
Obtenez la formule dans le fichier Excel sous forme de chaîne en Python
Résolvez les problèmes de somme partielle avec une recherche complète en Python
[Golang] Vérifiez si une chaîne de caractères spécifique est incluse dans la chaîne de caractères
Que faire lorsque le type de valeur est ambigu en Python?
[Python] Qu'est-ce qu'une instruction with?
Remplacez la valeur du dictionnaire par Python> update ()
[python] Quelle est la clé triée?
Liste des codes de langue utilisés dans Twitter (y compris l'API) (avec dictionnaire Python). Quelle est la langue la plus couramment utilisée?
Python in est aussi un opérateur
L'histoire de la création d'un outil pour charger une image avec Python ⇒ l'enregistrer sous un autre nom
Comment saisir une chaîne de caractères en Python et la sortir telle quelle ou dans la direction opposée.
Python> None / True / False> si src est None: / Syntaxe: a is b / Function: is_ (a, b)> is: L'objet est-il le même / id (a) / ==: est-ce la même valeur / modèle Flyweight / Utilisez == pour la comparaison numérique
Que faire s'il y a un décimal dans python json .dumps