J'ai un dictionnaire qui a des clés de différentes longueurs de mots, par exemple:
d={'longggg':'a', 'short':'b', 'medium':'c', 'shor':'d'}
et je veux me retrouver avec un dictionnaire qui ne contient que des clés supérieures à une certaine longueur. Par exemple, je souhaite conserver uniquement les entrées de 6 lettres ou plus. Donc je veux
new_d={'longggg':'a', 'medium':'c'}.
j'ai essayé
new_d=dict(k,v) for k,v in d.items() if len[k]>=6
et
new_d={}
for k, v in d.items():
if len[k]>=6:
new_d.update({k:v})
avec de nombreuses autres variantes de ce code, mais le problème finit par être de prendre la longueur d'une clé.
Utilisez Dictionary comprehensions
. Pas besoin de faire for k in d.keys()
. Utilisez simplement for k in d
as d.keys()
pour renvoyer une liste qui n'est pas du tout nécessaire. (Une leçon que j'ai apprise de Stackoverflow lui-même !!)
De plus, comme @roganjosh l'a souligné, utilisez à la len()
place de len[]
( len()
est une fonction). Les crochets sont utilisés pour l'indexation dans, par exemple, des listes et des chaînes.
d={'longggg':'a', 'short':'b', 'medium':'c', 'shor':'d'}
a = {k:d[k] for k in d if len(k)>=6}
print a
Production:
{'medium': 'c', 'longggg': 'a'}
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots