Apa saja 4 struktur data bawaan di python?

Kami telah melihat tipe sederhana Python.

[2, 3, 5, 7, 11, 13, 17, 19]
2,
[2, 3, 5, 7, 11, 13, 17, 19]
3,
[2, 3, 5, 7, 11, 13, 17, 19]
4,
[2, 3, 5, 7, 11, 13, 17, 19]
5,
[2, 3, 5, 7, 11, 13, 17, 19]
6, dan seterusnya. Python juga memiliki beberapa tipe gabungan bawaan, yang berfungsi sebagai wadah untuk tipe lainnya. Jenis senyawa ini adalah

Type NameExampleDescription
[2, 3, 5, 7, 11, 13, 17, 19]
7
[2, 3, 5, 7, 11, 13, 17, 19]
8Ordered collection
[2, 3, 5, 7, 11, 13, 17, 19]
9
# sort() method sorts in-place
L = [2, 5, 1, 6, 3, 4]
L.sort()
L
0Immutable ordered collection
# sort() method sorts in-place
L = [2, 5, 1, 6, 3, 4]
L.sort()
L
1
# sort() method sorts in-place
L = [2, 5, 1, 6, 3, 4]
L.sort()
L
2Unordered (key,value) mapping
# sort() method sorts in-place
L = [2, 5, 1, 6, 3, 4]
L.sort()
L
3
# sort() method sorts in-place
L = [2, 5, 1, 6, 3, 4]
L.sort()
L
4Unordered collection of unique values

Seperti yang Anda lihat, tanda kurung bulat, persegi, dan keriting memiliki arti yang berbeda dalam hal jenis koleksi yang dihasilkan. Kami akan melakukan tur singkat tentang struktur data ini di sini

Daftar

Daftar adalah tipe pengumpulan data yang dipesan dan dapat diubah dalam Python. Mereka dapat didefinisikan dengan nilai yang dipisahkan koma di antara tanda kurung siku;

Dalam [1]

L = [2, 3, 5, 7]

Daftar memiliki sejumlah properti dan metode berguna yang tersedia untuk mereka. Di sini kita akan melihat sekilas beberapa yang lebih umum dan berguna

Di [2]

# Length of a list
len(L)

Keluar[2]

4

Dalam [3]

# Append a value to the end
L.append(11)
L

Keluar[3]

[2, 3, 5, 7, 11]

Di [4]

# Addition concatenates lists
L + [13, 17, 19]

Keluar[4]

[2, 3, 5, 7, 11, 13, 17, 19]

Dalam [5]

# sort() method sorts in-place
L = [2, 5, 1, 6, 3, 4]
L.sort()
L
_

Keluar[5]

[1, 2, 3, 4, 5, 6]

Selain itu, masih banyak lagi metode daftar bawaan;

Sementara kami telah mendemonstrasikan daftar yang berisi nilai dari satu jenis, salah satu fitur hebat dari objek gabungan Python adalah bahwa mereka dapat berisi objek dari jenis apa pun, atau bahkan campuran jenis. Sebagai contoh

Di [6]

L = [1, 'two', 3.14, [0, 3, 5]]

Fleksibilitas ini merupakan konsekuensi dari sistem tipe dinamis Python. Membuat urutan campuran seperti itu dalam bahasa yang diketik secara statis seperti C bisa lebih memusingkan. Kami melihat bahwa daftar bahkan dapat berisi daftar lain sebagai elemen. Fleksibilitas tipe seperti itu adalah bagian penting dari apa yang membuat kode Python relatif cepat dan mudah untuk ditulis

Sejauh ini kami telah mempertimbangkan manipulasi daftar secara keseluruhan; . Ini dilakukan dengan Python melalui pengindeksan dan pemotongan, yang akan kita jelajahi selanjutnya

Daftar pengindeksan dan pemotongan

Python menyediakan akses ke elemen dalam tipe gabungan melalui pengindeksan untuk elemen tunggal, dan pemotongan untuk beberapa elemen. Seperti yang akan kita lihat, keduanya ditunjukkan dengan sintaks kurung siku. Misalkan kita kembali ke daftar beberapa bilangan prima pertama kita

Di [7]

# Length of a list
len(L)
_0

Python menggunakan pengindeksan berbasis nol, sehingga kita dapat mengakses elemen pertama dan kedua menggunakan sintaks berikut

Di [8]

# Length of a list
len(L)
_1

Keluar[8]

# Length of a list
len(L)
_2

Dalam [9]

# Length of a list
len(L)
_3

Keluar[9]

# Length of a list
len(L)
_4

Elemen di akhir daftar dapat diakses dengan angka negatif, mulai dari -1

Di [10]

# Length of a list
len(L)
_5

Keluar[10]

# Length of a list
len(L)
_6

Di [11]

# Length of a list
len(L)
_7

Keluar[11]

# Length of a list
len(L)
_8

Anda dapat memvisualisasikan skema pengindeksan ini dengan cara ini

Apa saja 4 struktur data bawaan di python?

Di sini nilai dalam daftar diwakili oleh angka besar dalam kotak; . Dalam hal ini,

# sort() method sorts in-place
L = [2, 5, 1, 6, 3, 4]
L.sort()
L
5 mengembalikan
# sort() method sorts in-place
L = [2, 5, 1, 6, 3, 4]
L.sort()
L
6, karena itu adalah nilai berikutnya pada indeks
# sort() method sorts in-place
L = [2, 5, 1, 6, 3, 4]
L.sort()
L
7

Di mana pengindeksan adalah cara untuk mengambil satu nilai dari daftar, mengiris adalah cara untuk mengakses beberapa nilai dalam sub-daftar. Ini menggunakan titik dua untuk menunjukkan titik awal (inklusif) dan titik akhir (non-inklusif) dari sub-array. Misalnya, untuk mendapatkan tiga elemen pertama dari daftar, kita bisa menulis

Dalam [12]

# Length of a list
len(L)
_9

Keluar[12]

4
0

Perhatikan di mana

# sort() method sorts in-place
L = [2, 5, 1, 6, 3, 4]
L.sort()
L
8 dan
# sort() method sorts in-place
L = [2, 5, 1, 6, 3, 4]
L.sort()
L
9 terletak pada diagram sebelumnya, dan bagaimana irisan hanya mengambil nilai di antara indeks. Jika kita mengabaikan indeks pertama,
# sort() method sorts in-place
L = [2, 5, 1, 6, 3, 4]
L.sort()
L
8 diasumsikan, sehingga kita dapat menulis secara ekuivalen

Di [13]

4
1

Keluar[13]

4
0

Demikian pula, jika kita mengabaikan indeks terakhir, standarnya adalah panjang daftar. Dengan demikian, tiga elemen terakhir dapat diakses sebagai berikut

Dalam [14]

4
_3

Keluar[14]

4
4

Terakhir, dimungkinkan untuk menentukan bilangan bulat ketiga yang mewakili ukuran langkah;

Dalam [15]

4
5

Keluar[15]

4
6

Versi yang sangat berguna dari ini adalah untuk menentukan langkah negatif, yang akan membalikkan larik

Dalam [16]

4
7

Keluar[16]

4
8

Pengindeksan dan pemotongan dapat digunakan untuk mengatur elemen serta mengaksesnya. Sintaksnya seperti yang Anda harapkan

Dalam [17]

4
_9

# Append a value to the end
L.append(11)
L
_0

Dalam [18]

# Append a value to the end
L.append(11)
L
_1

# Append a value to the end
L.append(11)
L
_2

Sintaks pemotongan yang sangat mirip juga digunakan di banyak paket berorientasi ilmu data, termasuk NumPy dan Pandas (disebutkan dalam pendahuluan)

Sekarang kita telah melihat daftar Python dan cara mengakses elemen dalam tipe gabungan terurut, mari kita lihat tiga tipe data gabungan standar lainnya yang disebutkan sebelumnya

Tupel

Tupel dalam banyak hal mirip dengan daftar, tetapi mereka didefinisikan dengan tanda kurung daripada tanda kurung siku

Dalam [19]

# Append a value to the end
L.append(11)
L
_3

Mereka juga dapat didefinisikan tanpa tanda kurung sama sekali

Dalam [20]

# Append a value to the end
L.append(11)
L
_4

# Append a value to the end
L.append(11)
L
_5

Seperti daftar yang dibahas sebelumnya, tupel memiliki panjang, dan elemen individual dapat diekstraksi menggunakan pengindeksan kurung siku

Dalam [21]

# Append a value to the end
L.append(11)
L
_6

Keluar[21]

# Length of a list
len(L)
_4

Di [22]

# Append a value to the end
L.append(11)
L
_8

Keluar[22]

# Append a value to the end
L.append(11)
L
_9

Fitur pembeda utama dari tuple adalah bahwa mereka tidak dapat diubah. ini berarti setelah dibuat, ukuran dan isinya tidak dapat diubah

Dalam [23]

[2, 3, 5, 7, 11]
0

[2, 3, 5, 7, 11]
1

Di [24]

[2, 3, 5, 7, 11]
2

[2, 3, 5, 7, 11]
3

Tuple sering digunakan dalam program Python; . Misalnya, metode

[1, 2, 3, 4, 5, 6]
_1 objek titik-mengambang mengembalikan pembilang dan penyebut;

Di [25]

[2, 3, 5, 7, 11]
_4

Keluar[25]

[2, 3, 5, 7, 11]
5

Beberapa nilai pengembalian ini dapat ditetapkan secara individual sebagai berikut

Dalam [26]

[2, 3, 5, 7, 11]
6

[2, 3, 5, 7, 11]
7

Logika pengindeksan dan pemotongan yang dibahas sebelumnya untuk daftar juga berfungsi untuk tupel, bersama dengan sejumlah metode lainnya. Lihat dokumentasi Python online untuk daftar yang lebih lengkap

Kamus

Kamus adalah pemetaan kunci nilai yang sangat fleksibel, dan membentuk dasar dari banyak implementasi internal Python. Mereka dapat dibuat melalui daftar yang dipisahkan koma dari

[1, 2, 3, 4, 5, 6]
2 pasangan dalam kurung kurawal

Di [27]

[2, 3, 5, 7, 11]
8

Item diakses dan diatur melalui sintaks pengindeksan yang digunakan untuk daftar dan tupel, kecuali di sini indeks bukanlah urutan berbasis nol tetapi kunci yang valid dalam kamus

Dalam [28]

[2, 3, 5, 7, 11]
_9

Keluar[28]

# Length of a list
len(L)
_2

Item baru dapat ditambahkan ke kamus menggunakan pengindeksan juga

Di [29]

# Addition concatenates lists
L + [13, 17, 19]
_1

# Addition concatenates lists
L + [13, 17, 19]
_2

Perlu diingat bahwa kamus tidak mempertahankan urutan apa pun untuk parameter masukan; . Kurangnya urutan ini memungkinkan kamus diimplementasikan dengan sangat efisien, sehingga akses elemen acak sangat cepat, terlepas dari ukuran kamus (jika Anda ingin tahu cara kerjanya, baca tentang konsep tabel hash). Dokumentasi python memiliki daftar lengkap metode yang tersedia untuk kamus

Set

Kumpulan dasar keempat adalah himpunan, yang berisi kumpulan barang-barang unik yang tidak terurut. Mereka didefinisikan seperti daftar dan tupel, kecuali mereka menggunakan kurung kurawal kamus

Di [30]

# Addition concatenates lists
L + [13, 17, 19]
_3

Jika Anda terbiasa dengan matematika himpunan, Anda akan terbiasa dengan operasi seperti gabungan, irisan, selisih, selisih simetris, dan lain-lain. Set Python memiliki semua operasi ini di dalamnya, melalui metode atau operator. Untuk masing-masing, kami akan menunjukkan dua metode yang setara

Dalam [31]

# Addition concatenates lists
L + [13, 17, 19]
_4

Keluar[31]

# Addition concatenates lists
L + [13, 17, 19]
_5

Dalam [32]

# Addition concatenates lists
L + [13, 17, 19]
_6

Keluar[32]

# Addition concatenates lists
L + [13, 17, 19]
_7

Dalam [33]

# Addition concatenates lists
L + [13, 17, 19]
_8

Keluar[33]

# Addition concatenates lists
L + [13, 17, 19]
_9

Dalam [34]

[2, 3, 5, 7, 11, 13, 17, 19]
0

Keluar[34]

[2, 3, 5, 7, 11, 13, 17, 19]
_1

Lebih banyak metode dan operasi set yang tersedia. Anda mungkin sudah menebak apa yang akan saya katakan selanjutnya. lihat dokumentasi online Python untuk referensi lengkap

Lebih Struktur Data Khusus

Python berisi beberapa struktur data lain yang mungkin berguna bagi Anda; . Modul koleksi didokumentasikan sepenuhnya dalam dokumentasi online Python, dan Anda dapat membaca lebih lanjut tentang berbagai objek yang tersedia di sana

Secara khusus, saya menemukan yang berikut ini sangat berguna pada kesempatan tertentu

  • [1, 2, 3, 4, 5, 6]
    4. Seperti tuple, tetapi setiap nilai memiliki nama
  • [1, 2, 3, 4, 5, 6]
    5. Seperti kamus, tetapi kunci yang tidak ditentukan memiliki nilai default yang ditentukan pengguna
  • [1, 2, 3, 4, 5, 6]
    6. Seperti kamus, tetapi urutan kunci dipertahankan

Setelah Anda melihat tipe koleksi bawaan standar, penggunaan fungsionalitas yang diperluas ini sangat intuitif, dan saya sarankan membaca tentang penggunaannya

Apa saja 4 struktur data tersebut?

Ketika kita berpikir tentang struktur data, umumnya ada empat bentuk. Linear. larik, daftar . Pohon. biner, tumpukan, partisi ruang dll. Hash. tabel hash terdistribusi, pohon hash dll.

Struktur data apa yang digunakan dalam Python?

Struktur Data Python Umum (Panduan) .
daftar. Array Dinamis yang Dapat Diubah
tupel. Kontainer yang tidak dapat diubah
Himpunan. Himpunan. Array Berketik Dasar
str. Array Karakter Unicode yang Tidak Dapat Diubah
byte. Array Byte Tunggal yang Tidak Dapat Diubah
bytearray. Array yang Dapat Diubah dari Single Byte
Array dengan Python. Ringkasan

Berapa banyak struktur data yang dimiliki Python?

Python memiliki empat struktur data utama yang terbagi antara tipe yang dapat diubah (daftar, kamus, dan set) dan tidak dapat diubah (tupel).

Apa itu struktur data bawaan?

Ini adalah kumpulan objek yang tidak terurut tanpa duplikat . Ini dapat dilakukan dengan melampirkan semua elemen di dalam kurung kurawal. Kami juga dapat membentuk set dengan menggunakan pengecoran tipe melalui kata kunci "set". Elemen dari kumpulan harus dari tipe data yang tidak dapat diubah. Set tidak mendukung pengindeksan, pemotongan, penggabungan, dan replikasi.