Dasar-Dasar NamedTuple
Buat record ringan yang tidak dapat diubah
Dasar-Dasar NamedTuple adalah pelajaran Python Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Python Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Python Academy mencakup 4 pelajaran total.
Apa Itu NamedTuple?
Tuple bernama adalah tuple yang setiap posisinya juga memiliki nama. Anda mendapatkan sifat tuple yang ringan dan tidak dapat diubah, sekaligus akses atribut yang mudah dibaca. Ini sangat cocok untuk catatan data kecil.
Masalah dengan Tuple Biasa
Tuple biasa bersifat berdasarkan posisi, sehingga Anda harus mengingat arti setiap indeks. Kode seperti p[0] dan p[1] mudah keliru.
point = (1, 2)
print(point[0]) # x?
print(point[1]) # y?Membuat dengan namedtuple
Pabrik collections.namedtuple membuat subkelas tuple baru. Berikan nama tipe dan nama atributnya.
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
print(p)Mengakses Berdasarkan Nama
Sekarang Anda dapat membaca atribut berdasarkan nama, bukan indeks, sehingga kode menjadi mudah dipahami.
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
print(p.x)
print(p.y)Tetap Merupakan Tuple
Tuple bernama tetap merupakan tuple sungguhan, sehingga pengindeksan, pembongkaran, dan iterasi semuanya tetap berfungsi seperti biasa.
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
print(p[0])
x, y = p
print(x, y)Sifat Tidak Dapat Diubah
Seperti semua tuple, tuple bernama tidak dapat diubah. Upaya untuk menetapkan nilai ke atribut akan menimbulkan AttributeError.
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
try:
p.x = 99
except AttributeError as e:
print('Cannot modify:', e)Membuat Salinan yang Dimodifikasi
Karena Anda tidak dapat mengubahnya, gunakan metode _replace() untuk menghasilkan instans baru dengan beberapa atribut yang diubah.
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
q = p._replace(y=99)
print(p)
print(q)Mengonversi Menjadi Kamus
Metode _asdict() mengembalikan atribut sebagai kamus, yang berguna untuk serialisasi atau pencatatan.
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
print(p._asdict())Memeriksa Atribut
Atribut _fields mencantumkan nama atribut. Ini berguna untuk kode umum yang mengiterasi atribut suatu catatan data.
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
print(Point._fields)Nilai Bawaan
Berikan nilai bawaan dengan argumen defaults. Nilai bawaan berlaku untuk atribut yang paling kanan, sama seperti nilai bawaan parameter fungsi.
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y', 'z'], defaults=[0])
print(Point(1, 2))
print(Point(1, 2, 9))Mengembalikan Banyak Nilai
Tuple bernama sangat berguna sebagai nilai yang dikembalikan fungsi. Daripada mengembalikan tuple tanpa nama, kembalikan tuple bernama agar pemanggil dapat membaca atribut berdasarkan nama.
from collections import namedtuple
Stats = namedtuple('Stats', ['minimum', 'maximum'])
def analyze(nums):
return Stats(min(nums), max(nums))
r = analyze([3, 1, 9, 4])
print(r.minimum, r.maximum)Pemeriksaan Singkat
Bagaimana cara membuat salinan yang dimodifikasi dari instans tuple bernama?
Rangkuman
Anda telah mempelajari cara membuat catatan data yang ringan dan tidak dapat diubah.
namedtuplemenambahkan nama atribut ke tuple.- Akses atribut berdasarkan nama atau indeks; pembongkaran tetap berfungsi.
- Gunakan
_replace()untuk salinan yang dimodifikasi dan_asdict()untuk mengonversinya. _fieldsmencantumkan nama atribut;defaultsmenetapkan nilai bawaan.
Belajar Python dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 76
- Pelajaran
- 320
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Dasar-Dasar NamedTuple” gratis?
Ya — teks lengkap “Dasar-Dasar NamedTuple” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Python Academy, upgrade ke CoddyKit PRO. Kursus Python Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Dasar-Dasar NamedTuple”?
Buat record ringan yang tidak dapat diubah Kamu berlatih Python Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Python Academy?
Tidak diperlukan pengalaman sebelumnya. Python Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Dasar-Dasar NamedTuple” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Python Academy ini?
Ya. Setiap pelajaran Python Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Kelas Enum
- IntEnum dan Flag
- Dasar-Dasar NamedTuple
- typing.NamedTuple