Python Academy · Pelajaran

Dasar-Dasar NamedTuple

Buat record ringan yang tidak dapat diubah

Pelajaran 3 dari 413 langkah

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.

  • namedtuple menambahkan nama atribut ke tuple.
  • Akses atribut berdasarkan nama atau indeks; pembongkaran tetap berfungsi.
  • Gunakan _replace() untuk salinan yang dimodifikasi dan _asdict() untuk mengonversinya.
  • _fields mencantumkan nama atribut; defaults menetapkan nilai bawaan.
Gratis untuk memulai

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

  1. Kelas Enum
  2. IntEnum dan Flag
  3. Dasar-Dasar NamedTuple
  4. typing.NamedTuple
← Kembali ke Python Academy