Python

Python Namedtuple

Python Namedtuple

Python hadir dengan banyak struktur data bawaan seperti senarai, kamus, dan tupel untuk menyimpan dan mengurus data dengan cekap. The bernamatuple adalah wadah seperti kamus yang terdapat dalam modul "koleksi". Sama dengan kamus, bernamatuple juga mengandungi kunci yang dipetakan ke nilai. Walau bagaimanapun, bernamatuple membolehkan mengakses nilai melalui kunci dan juga melalui indeks. Berbanding dengan kamus Python, mengakses nilai melalui indeks adalah fungsi tambahan dalam bernamatuple. Artikel ini menerangkan nama Python secara terperinci dengan contoh.

Mengakses nilai dari bernamatuple

Nilai-nilai di dalam bernamatuple dapat diakses dengan cara berikut:

  1. Dengan menggunakan kunci
  2. Dengan menggunakan indeks
  3. Dengan menggunakan fungsi getattr ()

Oleh kerana bernamatuple mengubah medan menjadi atribut, oleh itu mudah untuk mengakses nilai menggunakan fungsi getattr ().

Contoh

Sekarang mari kita lihat beberapa contoh untuk memahami penciptaan dan pengerjaan bernamatuple. Untuk membuat dan menggunakan bernamatuple, pertama, kita perlu mengimport modul koleksi. Di bawah ini diberikan contoh, sebuah nama bernama untuk guru dibuat. Kunci nama dinamakan masing-masing adalah nama, umur, dan jabatan. Nilai diakses menggunakan indeks dan kekunci.

#mengimport modul koleksi
koleksi import
#membuat nama khas untuk guru
#nama, umur, dan jabatan adalah kuncinya
Guru = koleksi.bernamatuple ('Teacher', ['name', 'age', 'department'])
# buat guru baru dan tambah nilai
teacher_john = Guru ("John", 29, "Sains Komputer")
#mengakses nilai guru menggunakan indeks
cetak ("Mengakses nilai menggunakan indeks:")
cetak ("Nama guru ialah:", cikgu_john [0])
cetak ("Umur guru adalah:", cikgu_john [1])
cetak ("Jabatan guru adalah:", teacher_john [2])
#mengakses nilai guru menggunakan kunci
cetak ("Mengakses nilai menggunakan kunci:")
cetak ("Nama guru adalah:", cikgu_john.nama)
cetak ("Umur guru adalah:", cikgu_john.umur)
cetak ("Jabatan guru adalah:", cikgu_john.jabatan)

Pengeluaran

Sekarang mari kita mengakses nilai menggunakan fungsi getattr (). Nametuple dan kunci diteruskan sebagai argumen kepada fungsi getattr ().

#mengimport modul koleksi
koleksi import
#membuat nama khas untuk guru
#nama, umur, dan jabatan adalah kuncinya
Guru = koleksi.bernamatuple ('Teacher', ['name', 'age', 'department'])
# buat guru baru dan tambah nilai
teacher_john = Guru ("John", 29, "Sains Komputer")
#mengakses nilai guru menggunakan fungsi getattr ()
cetak (getattr (cikgu_john, "nama"))
cetak (getattr (cikgu_john, "umur"))
cetak (getattr (cikgu_john, "jabatan"))

Pengeluaran

Operasi popular bernamatuple

Beberapa fungsi popular menukar koleksi lain seperti senarai, kamus, dan tupel menjadi bernamatuple dan mengembalikan maklumat bernama. Berikut adalah fungsi yang mengubah koleksi lain ke bernama tuple:-

Fungsi _make () menukar objek berulang seperti senarai dan tuple menjadi bernamatuple. Fungsi _asdict () membuat pesananDict dari bernamatuple dan mengembalikannya. Terakhir, pengendali ** menukar kamus menjadi bernamatuple. Selain itu, fungsi yang mengembalikan maklumat yang dinamakan adalah berikut:

Fungsi _fields () mengembalikan semua bidang bernamatuple sedangkan, fungsi _replace () menggantikan nilai tertentu dengan nilai lain.

Mari kita laksanakan fungsi seperti yang disebutkan di atas dalam skrip Python kami untuk mengubah koleksi yang berlainan menjadi bernamatuple.

#mengimport modul koleksi
koleksi import
#membuat nama khas untuk guru
#nama, umur, dan jabatan adalah kuncinya
Guru = koleksi.bernamatuple ('Teacher', ['name', 'age', 'department'])
# buat guru baru dan tambah nilai
teacher_john = Guru ("John", 29, "Sains Komputer")
#membuat senarai
teacher_list = ["Mark", 30, "Pentadbiran Perniagaan"]
#membuat kamus
teacher_dict = 'name': 'Talor', 'age': 32, 'department': 'Ekonomi'
#using _make () fungsi untuk menukar senarai ke bernamatuple
cetak ("Senarai untuk penukaran dinamakan:")
mencetak (Guru._ buat (senarai_pengajar))
#using _asdict () berfungsi untuk membuat OrderDict
cetak ("Membuat Pesanan yang Dipesan:")
cetak (cikgu_john._asdict ())
#menggunakan ** untuk menukar kamus menjadi bernamatuple
cetak ("Menukar kamus menjadi bernamatuple:")
cetak (Guru (** cikgu_dict))

Pengeluaran

Sekarang mari kita gunakan fungsi _fields (), dan _replace () untuk mendapatkan maklumat kunci dan menggantikan kekunci masing-masing.

#mengimport modul koleksi
koleksi import
#membuat nama khas untuk guru
#nama, umur, dan jabatan adalah kuncinya
Guru = koleksi.bernamatuple ('Teacher', ['name', 'age', 'department'])
# buat guru baru dan tambah nilai
teacher_john = Guru ("John", 29, "Sains Komputer")
# menggunakan fungsi _fields untuk mendapatkan kunci bernamatuple
cetak ("Kunci bernamatuple adalah:")
mencetak (Guru._ ladang)
# menggunakan fungsi _replace untuk menggantikan nilai
cetak ("Nilai ganti nama adalah:")
cetak (cikgu_john._replace (nama = 'Donald'))

Pengeluaran
Dalam output, dapat dilihat bahawa fungsi _fields mengembalikan kunci maklumat, dan fungsi _replace () berjaya menggantikan nama.

Kesimpulannya

The bernamatuple adalah wadah seperti kamus yang terdapat dalam modul "koleksi". Ia mengandungi kunci dan memetakan nilai ke kunci. Tidak seperti kamus Python, nilai bernama bernama juga dapat diakses menggunakan fungsi indeks dan getattr (). Artikel ini menerangkan secara ringkas nama yang disebut melalui contoh.

Tambahkan isyarat Tetikus ke Windows 10 menggunakan alat percuma ini
Dalam beberapa tahun kebelakangan ini komputer dan sistem operasi telah banyak berkembang. Ada saat ketika pengguna harus menggunakan perintah untuk m...
Mengawal & menguruskan pergerakan tetikus antara beberapa monitor di Windows 10
Pengurus Tetikus Paparan Dwi membolehkan anda mengawal & mengkonfigurasi pergerakan tetikus antara beberapa monitor, dengan memperlahankan pergerakann...
WinMouse membolehkan anda menyesuaikan & meningkatkan pergerakan penunjuk tetikus pada PC Windows
Sekiranya anda ingin meningkatkan fungsi lalai penunjuk tetikus anda gunakan perisian percuma WinMouse. Ia menambah lebih banyak ciri untuk membantu a...