Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk menukar matriks kepada kamus dalam Python
Matriks ditakrifkan dengan menyusun baris dan lajur untuk membentuk tatasusunan. Nilai matriks boleh menjadi aksara atau integer. Terdapat beberapa cara untuk menukar matriks kepada kamus Python - pemahaman kamus, untuk gelung, enumerate dan zip().
Atur cara ini menggunakan gelung for untuk berulang sepanjang matriks dengan menggunakan terbitan kamus. Ini membantu menukar matriks kepada kamus.
Terjemahan bahasa Cina bagiDalam contoh di bawah, kami akan menunjukkan penukaran nilai nama matriks kepada kamus. Nama dalam setiap bahagian dalam matriks dilabelkan "Nama 1", "Nama 2", dsb., dan setiap bahagian dilabelkan "Bahagian 1", "Bahagian 2", dsb. Akhir sekali, ia menukar matriks nilai nama yang terhasil kepada kamus.
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'}}
Atur cara ini menggunakan bersarang untuk gelung, berulang sepanjang baris dan lajur dan mengembalikan hasil sebagai data kamus (menetapkan baris sebagai kunci dan lajur sebagai nilai).
Terjemahan bahasa Cina bagiDalam contoh di bawah, atur cara menukar matriks kepada kamus. Ia membina kamus bersarang dengan mengulangi baris dan lajur. Setiap komponen matriks mempunyai label seperti "baris, kol" dan disambungkan kepada nilai yang sepadan. Data matriks diwakili oleh kamus sebagai baris dan lajur berlabel.
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}}
Program menggunakan penghitungan untuk menjejak bilangan lelaran dalam gelung dan mengakses elemen gelung tersebut. Seterusnya, gunakan pemahaman kamus untuk memformat hasil matriks.
Terjemahan bahasa Cina bagiDalam contoh di bawah, program bermula dengan fungsi rekursif yang dikenali untuk memanggil dirinya sendiri. Menggunakan teknik terbitan kamus, ia disimpan dalam pembolehubah dict dengan menggunakan kaedah terbina dalam enumerate(). Kemudian mengembalikan pembolehubah dict untuk mendapatkan transformasi baharu kamus. Sekarang buat subsenarai yang mewakili matriks dan simpannya dalam matriks pembolehubah. Kemudian gunakan fungsi panggilan yang menerima parameter bernama matriks untuk lulus nilainya dan menyimpannya dalam hasil pembolehubah. Akhirnya, kami mencetak output dengan bantuan hasil.
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}}
Atur cara ini menggunakan fungsi zip() untuk menetapkan kamus bersarang kepada nilai dan menetapkan data dalam kekunci dengan menggunakan pemahaman kamus {}.
Terjemahan bahasa Cina bagiDalam contoh di bawah, kami akan menggunakan fungsi rekursif yang dipanggil matrix_to_dict fun yang menerima parameter bernama Matrix dengan nilai senarai. Kemudian ia menggunakan pemahaman senarai untuk menyimpannya dalam kunci pembolehubah. Seterusnya, ia membina kamus pasangan kunci yang diberikan melalui teknik kefahaman selepas berulang melalui setiap baris dalam matriks dan menyimpannya dalam kamus pembolehubah. Berdasarkan indeks baris, kunci dicipta setiap baris menggunakan corak "SN 1", "SN 2" dsb.
Teruskan kembalikan kamus yang akan mengira matriks kepada penukaran kamus. Sekarang hanya buat matriks menggunakan subsenarai dan simpannya dalam matriks berubah-ubah. Kemudian gunakan fungsi panggilan untuk lulus matriks pembolehubah dan simpan dalam pembolehubah hasil. Akhir sekali, kami mencetak output dengan bantuan keputusan berubah-ubah.
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'}}
Kami membincangkan pelbagai cara untuk menukar matriks kepada kamus. Semua output di atas menunjukkan perwakilan kamus yang berbeza menggunakan integer dan aksara. Secara keseluruhannya, transformasi ini membolehkan perwakilan data yang lebih cekap dan fleksibel.
Atas ialah kandungan terperinci Bagaimana untuk menukar matriks kepada kamus dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!