Filtrer un dictionnaire à l'aide d'une fonction de condition
Les dictionnaires Python, omniprésents dans les tâches de manipulation de données, fournissent un moyen puissant de stocker et de récupérer des informations basées sur sur les clés. Cependant, il peut arriver que vous deviez extraire un sous-ensemble du contenu du dictionnaire en fonction de critères spécifiques. Explorons un exemple dans lequel nous souhaitons filtrer un dictionnaire pour sélectionner des points dont les coordonnées x et y sont toutes deux inférieures à 5.
Approche originale
Une approche possible consiste à itérer sur les éléments du dictionnaire, en vérifiant les coordonnées de chaque point et en sélectionnant ceux qui remplissent la condition. Cette approche, bien que simple, peut être verbeuse et sujette aux erreurs.
points = {'a': (3, 4), 'b': (1, 2), 'c': (5, 5), 'd': (3, 3)} points_small = {} for item in [i for i in points.items() if i[1][0] < 5 and i[1][1] < 5]: points_small[item[0]] = item[1]
Solution élégante
Python fournit une solution plus élégante utilisant la compréhension des dictés. Les compréhensions de dict vous permettent de créer un nouveau dictionnaire basé sur une condition spécifiée, avec la syntaxe : {k : v pour k, v dans existant_dict si condition}. Dans notre cas, nous pouvons utiliser cette syntaxe pour créer le dictionnaire filtré :
{k: v for k, v in points.items() if v[0] < 5 and v[1] < 5}
Compatibilité Python 2
Dans Python 2, la méthode iteritems() est utilisée au lieu de items(). Le code pour Python 2 serait :
{k: v for k, v in points.iteritems() if v[0] < 5 and v[1] < 5}
Cette syntaxe compacte et expressive facilite la manipulation de dictionnaires et l'extraction de données spécifiques en fonction de conditions. Les compréhensions de dictées de Python offrent un outil puissant pour filtrer et transformer le contenu du dictionnaire de manière efficace et concise.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!