Maison >développement back-end >Tutoriel Python >Comment utiliser une liste comme clé de dictionnaire en Python 3 ?
Les dictionnaires sont l'une des structures de données les plus puissantes du langage de programmation Python. Il s'agit d'une structure de données composée de paires clé-valeur. Il présente plusieurs avantages : par exemple, l'accès aux valeurs a une complexité temporelle de O(1), il est économe en mémoire, facile à mettre à jour, à supprimer et à itérer, et fournit de nombreuses fonctions intégrées pour des opérations rapides.
Nous suivons ce sujet car des problèmes surviennent lorsque nous essayons d'utiliser des listes comme clés. Les listes sont des types de données mutables en Python. Nous pouvons donc supprimer, mettre à jour et ajouter des valeurs dans la liste. Ainsi, si nous générons une fonction de hachage à partir d'une liste et d'éléments de liste, lorsque les éléments de la liste changent, nous ne pourrons plus trouver la fonction de hachage car la fonction de hachage a changé.
Un autre problème potentiel est que différentes listes peuvent avoir la même valeur de hachage. Si la somme des valeurs de deux listes est la même, leurs valeurs de hachage seront également les mêmes. Dans ce cas, si l'une des listes est utilisée comme clé dans le dictionnaire et qu'une autre liste avec le même hachage est recherchée, le dictionnaire peut donner des résultats incorrects.
Une façon de convertir la liste de clés d'un dictionnaire en tuple et de les utiliser comme clés est d'utiliser cette indirection. Notez que même si les valeurs restent les mêmes, le type de données n'est plus une liste
<variable name> = tuple(<list to convert into tuple>)
Ici, le tuple prend un paramètre, qui est le nom de la liste.
Dans le code suivant, nous avons d'abord créé un dictionnaire vide nommé my_dict. Ensuite, nous avons créé notre liste nommée my_list. Nous avons utilisé la méthode tuple pour convertir la liste en un objet Tuple. "Bonjour tout le monde !" comme valeur.
my_dict = {} my_list = [1, 2, 3] my_tuple = tuple(my_list) my_dict[my_tuple] = "Hello, World!" print(my_dict)
{(1, 2, 3): 'Hello, World!'}
Une autre façon consiste à convertir la liste en type de données chaîne. String est également un type de données immuable ; nous pouvons donc l'utiliser comme clé d'un dictionnaire.
<variable name> = ''.join(str(e) for e in <name of the list>)
L'instruction ici prend des éléments individuels de la liste et les combine en une chaîne. La fonction Join joint des séquences de chaînes.
Dans le code suivant, nous avons d'abord créé une liste nommée my_list. Ensuite, nous avons utilisé la méthode join qui crée une chaîne d'éléments de liste puisque la chaîne peut être utilisée comme clé de dictionnaire, nous l'avons utilisée comme clé du dictionnaire my_list_str. .
my_list = [1, 2, 3] my_list_str = ''.join(str(e) for e in my_list) my_dict = {my_list_str: 'value'} print(my_dict) print(my_dict[my_list_str])
{'123': 'value'} value
Nous pouvons également utiliser le module JSON et les fonctions intégrées pour convertir d'abord la liste en chaîne à l'aide de la méthode dumps, puis l'utiliser comme clé du dictionnaire.
<name of variable< = json.dumps(<name of list<)
Voici la méthode dumps de la bibliothèque JSON, qui sérialise les objets Python en chaînes au format JSON. La méthode dumps accepte le nom de la chaîne en paramètre
Dans le code ci-dessous, nous importons d'abord la bibliothèque JSON. Ensuite, nous créons une liste appelée my_list. Nous avons créé un objet sérialisé à partir de la liste en utilisant la méthode dumps. Maintenant, nous avons l'objet sérialisé comme clé de dictionnaire my_dict.
import json my_list = [1, 2, 3] my_key = json.dumps(my_list) my_dict = {my_key: 'value'} print(my_dict)
{'[1, 2, 3]': 'value'}
Dans cet article, nous avons appris à utiliser les listes comme clés d'un dictionnaire dans Python 3. Nous avons compris les difficultés auxquelles nous étions confrontés si nous essayions directement de faire des listes comme clés dans le dictionnaire Python. Nous devons donc d'abord convertir les listes. listez le type de données en tuples, chaînes, etc., qui sont des types de données immuables. Nous avons également appris à utiliser le module JSON pour utiliser des listes comme clé de dictionnaire.
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!