Maison >développement back-end >Tutoriel Python >Comment convertir une matrice en dictionnaire en Python
Une matrice est définie en disposant les lignes et les colonnes pour former un tableau. Les valeurs de la matrice peuvent être des caractères ou des entiers. Il existe plusieurs façons de convertir une matrice en dictionnaire Python : compréhension du dictionnaire, boucle for, enumerate et zip().
Ce programme utilise une boucle for pour parcourir la longueur d'une matrice en appliquant la dérivation par dictionnaire. Cela permet de convertir une matrice en dictionnaire.
La traduction chinoise deDans l'exemple ci-dessous, nous montrerons la conversion des valeurs de nom d'une matrice en dictionnaire. Les noms dans chaque section de la matrice sont étiquetés « Nom 1 », « Nom 2 », etc., et chaque section est étiquetée « Section 1 », « Section 2 », etc. Enfin, il convertit la matrice nom-valeur résultante en un dictionnaire.
def matrix_to_dict(matrix): dictionary = {f"Section {i+1}": {f"Name {j+1}": matrix[i][j] for j in range(len(matrix[i]))} for i in range(len(matrix))} return dictionary # Matrix input using List matrix = [['Raghav', 'Sunil', 'Kiran', 'Rajendra'], ['Pritam', 'Rahul', 'Mehak', 'Suresh'], ['Tom', 'Peter', 'Mark', 'Jessy']] result = matrix_to_dict(matrix) print(result)
{'Section 1': {'Name 1': 'Raghav', 'Name 2': 'Sunil', 'Name 3': 'Kiran', 'Name 4': 'Rajendra'}, 'Section 2': {'Name 1': 'Pritam', 'Name 2': 'Rahul', 'Name 3': 'Mehak', 'Name 4': 'Suresh'}, 'Section 3': {'Name 1': 'Tom', 'Name 2': 'Peter', 'Name 3': 'Mark', 'Name 4': 'Jessy'}}
Ce programme utilise des boucles for imbriquées, parcourt la longueur des lignes et des colonnes et renvoie les résultats sous forme de données de dictionnaire (en définissant les lignes comme clés et les colonnes comme valeurs).
La traduction chinoise deDans l'exemple ci-dessous, le programme convertit une matrice en dictionnaire. Il crée des dictionnaires imbriqués en répétant des lignes et des colonnes. Chaque composant matriciel a une étiquette telle que « ligne, col » et est connecté à la valeur correspondante. Les données matricielles sont représentées par un dictionnaire sous forme de lignes et de colonnes étiquetées.
def matrix_to_dict(matrix): dictionary = {} for i in range(len(matrix)): row_dict = {} for j in range(len(matrix[i])): row_dict[f"col {j+1}"] = matrix[i][j] dictionary[f"row {i+1}"] = row_dict return dictionary # matrix input matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] result = matrix_to_dict(matrix) print(result)
{'row 1': {'col 1': 1, 'col 2': 2, 'col 3': 3}, 'row 2': {'col 1': 4, 'col 2': 5, 'col 3': 6}, 'row 3': {'col 1': 7, 'col 2': 8, 'col 3': 9}}
Les programmes utilisent des énumérations pour suivre le nombre d'itérations dans une boucle et accéder aux éléments de cette boucle. Ensuite, utilisez une compréhension de dictionnaire pour formater le résultat de la matrice.
La traduction chinoise deDans l'exemple ci-dessous, le programme commence par une fonction récursive connue pour s'appeler elle-même. À l'aide de la technique de dérivation de dictionnaire, il est stocké dans la variable dict à l'aide de la méthode intégrée enumerate(). Puis renvoie la variable dict pour obtenir la nouvelle transformation du dictionnaire. Créez maintenant une sous-liste représentant la matrice et stockez-la dans la matrice variable. Utilisez ensuite une fonction appelante qui accepte un paramètre nommé matrice pour transmettre sa valeur et la stocker dans la variable résultat. Enfin, nous imprimons la sortie à l’aide du résultat.
def matrix_to_dict(matrix): dict = {f"row {i+1}": {f"column {j+1}": value for j, value in enumerate(row)} for i, row in enumerate(matrix)} return dict # Input of Matrix matrix = [[11, 12, 13], [40, 50, 60], [17, 18, 19],[80, 90, 100]] # Pass the value of the matrix using the recursive function result = matrix_to_dict(matrix) print(result)
{'row 1': {'column 1': 11, 'column 2': 12, 'column 3': 13}, 'row 2': {'column 1': 40, 'column 2': 50, 'column 3': 60}, 'row 3': {'column 1': 17, 'column 2': 18, 'column 3': 19}, 'row 4': {'column 1': 80, 'column 2': 90, 'column 3': 100}}
Ce programme utilise la fonction zip() pour définir un dictionnaire imbriqué sur une valeur et définit les données dans la clé en utilisant les compréhensions de dictionnaire {}.
La traduction chinoise deDans l'exemple ci-dessous, nous utiliserons une fonction récursive appelée matrix_to_dict fun qui accepte un paramètre nommé Matrix avec des valeurs de liste. Ensuite, il utilise une compréhension de liste pour la stocker dans une clé variable. Ensuite, il construit un dictionnaire de la paire de clés donnée grâce à des techniques de compréhension après avoir parcouru chaque ligne de la matrice et l'avoir stocké dans un dictionnaire de variables. En fonction de l'index de ligne, une clé est créée par ligne en utilisant le modèle "SN 1", "SN 2" etc.
Continuez retournez le dictionnaire qui calculera la conversion matrice en dictionnaire. Maintenant, créez simplement une matrice à l’aide d’une sous-liste et stockez-la dans une matrice variable. Utilisez ensuite la fonction appelante pour transmettre la matrice variable et stockez-la dans la variable result. Enfin, nous imprimons la sortie à l’aide de résultats variables.
def matrix_to_dict(matrix): keys = [f"Letter {j+1}" for j in range(len(matrix[0]))] # Each key is generated using different dictionary comprehension dictionary = {f"SN {i+1}": {key: value for key, value in zip(keys, row)} for i, row in enumerate(matrix)} return dictionary # Take input as a character matrix using List matrix = [['A', 'B', 'C'], ['P', 'Q', 'R'], ['X', 'Y', 'Z']] result = matrix_to_dict(matrix) print(result)
{'SN 1': {'Letter 1': 'A', 'Letter 2': 'B', 'Letter 3': 'C'}, 'SN 2': {'Letter 1': 'P', 'Letter 2': 'Q', 'Letter 3': 'R'}, 'SN 3': {'Letter 1': 'X', 'Letter 2': 'Y', 'Letter 3': 'Z'}}
Nous avons discuté de différentes façons de convertir une matrice en dictionnaire. Toutes les sorties ci-dessus affichent différentes représentations de dictionnaire utilisant des entiers et des caractères. Dans l’ensemble, cette transformation permet une représentation plus efficace et flexible des données.
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!