Découper un dictionnaire par des clés commençant par une certaine chaîne

Aphex:

C'est assez simple mais j'adorerais une jolie façon pythonique de le faire. Fondamentalement, étant donné un dictionnaire, retournez le sous-dictionnaire qui contient uniquement les clés commençant par une certaine chaîne.

» d = {'Apple': 1, 'Banana': 9, 'Carrot': 6, 'Baboon': 3, 'Duck': 8, 'Baby': 2}
» print slice(d, 'Ba')
{'Banana': 9, 'Baby': 2, 'Baboon': 3}

C'est assez simple à faire avec une fonction:

def slice(sourcedict, string):
    newdict = {}
    for key in sourcedict.keys():
        if key.startswith(string):
            newdict[key] = sourcedict[key]
    return newdict

Mais il existe sûrement une solution plus agréable, plus intelligente et plus lisible? Un générateur pourrait-il aider ici? (Je n'ai jamais assez d'occasions de les utiliser).

Mark Byers:

Que dis-tu de ça:

en python 2.x:

def slicedict(d, s):
    return {k:v for k,v in d.iteritems() if k.startswith(s)}

En python 3.x:

def slicedict(d, s):
    return {k:v for k,v in d.items() if k.startswith(s)}

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

C # Désérialiser JSON avec un nom de clé commençant par une chaîne

Python : Comment obtenir toutes les clés d'un dictionnaire commençant par une sous-chaîne donnée s

Remplacement des clés d'une chaîne par les valeurs correspondantes d'un dictionnaire

Extraire des mots commençant par un caractère particulier d'une chaîne

Comment sélectionner tous les enregistrements commençant par une certaine chaîne?

Division d'une chaîne séparée par des crochets en un dictionnaire

Extraire des chaînes d'une autre chaîne commençant et se terminant par un caractère spécial

Trouver l'objet dans la portée $ qui a une clé commençant par une certaine chaîne?

Comptez le nombre de fois où la partie d'un lien commençant par une certaine chaîne apparaît dans le texte d'une colonne

Saisir une chaîne commençant par une certaine sous-chaîne

Comment écrire des tableaux numpy dans un fichier .txt, en commençant par une certaine ligne?

Utilisation d'une chaîne de correspondance regex commençant par un point à l'exclusion des doubles

Je veux obtenir des mots (jeton) à partir d'une chaîne dans des scripts dactylographiés commençant par $

Regex correspond à un mot commençant par une chaîne

Ajout d'une chaîne commençant par des guillemets simples dans une cellule Excel

Sélection d'éléments dans une liste commençant par un format de chaîne particulier

Extraire un mot d'une chaîne commençant par un mot particulier jusqu'à la fin

Obtention d'un vecteur de mots dans une chaîne commençant par un motif - R

Supprimer les mots d'une chaîne commençant par des majuscules dans Scala

Trouvez l'index d'une chaîne commençant par

suppression des clés d'objet commençant par une voyelle js

Recherche d'une sous-chaîne commençant et se terminant par un certain mot

Rechercher un mot commençant par $ à partir d'une chaîne donnée avec angulaire 2

Vérifiez le premier caractère d'un mot dans une chaîne commençant par @

Comment lire les lignes dans R commençant par une certaine chaîne

Supprimer les lignes en double commençant par une certaine chaîne

UNION ALL sur toutes les tables commençant par une certaine chaîne

N'écrivez pas de ligne commençant par une certaine chaîne

Swift : faire correspondre des caractères séparés d'une chaîne avec des valeurs dans un dictionnaire

TOP liste

chaudétiquette

Archive