Méthode pour obtenir toutes les clés du dict imbriqué

[^ 1]: Dr. shiracamus nous apprend à écrire plus directement dans les commentaires.

Il existe une manière intelligente d'écrire dans les commentaires, veuillez donc vous y référer.

test= {"w": {"y":{"z":1}},"ww":1, "www":{"yy":1}}

def allkeys(a):
    keys = a.keys()
    values = a.values()
    
    t = []
    for v in values:
        if isinstance(v, dict):
            t.extend(allkeys(v))
                
    result = [i for i in keys]
    result.extend(t)
    return result
    
r = allkeys(test)
print(r)


Résultat d'exécution


['ww', 'www', 'w', 'yy', 'y', 'z']

https://gist.github.com/lnial/dedf2a98735c2826ca9ef7787bfb18fd


Lorsque la clé parente est ajoutée au nom de la clé

test= {"w": {"y":{"z":1}},"ww":1, "www":{"yy":1}}

def parentnema(k, v):
    return k +"."+ v

def allkeys(a):
    keys = a.keys()
    values = a.values()
    
    t = []
    for k in keys:
        v = a.get(k)
        if isinstance(v, dict):
            t.extend(map(lambda z: k + "." + z, allkeys(v)))

    result = [i for i in keys]
    result.extend(t)
    return result
    
r = allkeys(test)
print(r)

Résultat d'exécution


 ['ww', 'www', 'w', 'www.yy', 'w.y', 'w.y.z']

https://gist.github.com/lnial/cd57861fb00a38537dda8974f96a1e1b

Recommended Posts

Méthode pour obtenir toutes les clés du dict imbriqué
Liste des touches de raccourci dédiées à tous
Comment obtenir toutes les clés et valeurs du dictionnaire
Je veux obtenir le nom de la fonction / méthode en cours d'exécution
Comment se débarrasser des longues inclusions
Obtenez tous les tweets en direct du baseball professionnel
4 façons de gérer les clés de dict manquantes
Je veux obtenir les données de League of Legends ③
Je veux obtenir les données de League of Legends ②
Comment obtenir des éléments de type dictionnaire de Python 2.7
Je veux obtenir les données de League of Legends ①
Clustering de méthodes de clustering
Comment obtenir le nombre de chiffres en Python
Essayez d'obtenir le contenu de Word avec Golang
Script pour obtenir la date d'expiration du certificat SSL
[Python] Obtenez le nombre de vues de tous les articles publiés
[Python] J'ai essayé d'obtenir Json de squid ring 2
réussir à se débarrasser des pylônes lourds dans vim-lsp
J'ai créé un outil pour obtenir les liens de réponse d'OpenAI Gym en même temps