Rumah > pembangunan bahagian belakang > Tutorial Python > Apakah perbezaan antara senarai, tuple, set, dan kamus?

Apakah perbezaan antara senarai, tuple, set, dan kamus?

Robert Michael Kim
Lepaskan: 2025-03-19 11:52:25
asal
915 orang telah melayarinya

Apakah perbezaan antara senarai, tuple, set, dan kamus?

Di Python, terdapat beberapa struktur data terbina dalam yang melayani tujuan yang berbeza berdasarkan ciri-ciri mereka, seperti mutabilitas, perintah, dan jenis elemen yang dapat mereka anggap. Mari kita melalui setiap struktur data ini:

  1. Senarai :

    • Mutabiliti : Mutable, bermakna anda boleh menukar, menambah, atau mengeluarkan unsur -unsur selepas penciptaan.
    • Pesanan : Diarahkan, unsur -unsur disimpan dalam urutan tertentu, dan perintah mereka boleh dipercayai.
    • Elemen : Boleh menyimpan unsur -unsur pendua dan elemen pelbagai jenis.
    • Sintaks : Ditakrifkan menggunakan kurungan persegi [] , misalnya, my_list = [1, 2, 3] .
  2. Tuples :

    • Mutabiliti : Tidak berubah, bermakna anda tidak boleh mengubah, menambah, atau mengeluarkan unsur selepas penciptaan.
    • Pesanan : Diarahkan, sama dengan senarai, elemen disimpan dalam urutan tertentu.
    • Elemen : Boleh menyimpan unsur -unsur pendua dan elemen pelbagai jenis.
    • Sintaks : Ditakrifkan menggunakan kurungan () , misalnya, my_tuple = (1, 2, 3) .
  3. Tetapkan :

    • Mutabilitas : boleh berubah ( set ) atau tidak berubah ( frozenset ).
    • Pesanan : Unsur -unsur yang tidak teratur tidak disimpan dalam urutan tertentu, dan anda tidak boleh bergantung pada perintah mereka.
    • Elemen : Tidak dapat menyimpan unsur -unsur pendua dan mestilah hashable (contohnya, tidak boleh mengandungi senarai atau set lain).
    • Sintaks : Ditakrifkan menggunakan pendakap keriting {} atau fungsi set() , misalnya, my_set = {1, 2, 3} atau my_set = set([1, 2, 3]) .
  4. Kamus :

    • Mutabiliti : Mutable, anda boleh menukar, menambah, atau mengeluarkan pasangan nilai kunci selepas penciptaan.
    • Pesanan : Diarahkan sejak Python 3.7 (sebelum ini tidak teratur), makna kekunci disimpan mengikut urutan yang dimasukkan.
    • Elemen : Kekunci mestilah unik dan boleh hashable, nilai boleh menjadi jenis.
    • Sintaks : Ditakrifkan menggunakan pendakap keriting {} dengan pasangan nilai kunci, misalnya, my_dict = {'key1': 'value1', 'key2': 'value2'} .

Struktur data mana yang harus saya gunakan untuk menyimpan item yang boleh dimainkan, yang diperintahkan?

Jika anda perlu menyimpan item yang boleh dimakan, diperintahkan, pilihan terbaik akan menjadi senarai . Senarai direka untuk menyimpan urutan item di mana anda perlu mengekalkan pesanan dan dapat mengubah suai urutan selepas ia dibuat. Anda boleh menambah atau mengeluarkan elemen menggunakan kaedah seperti append() , insert() , pop() , dan remove() , dan anda juga boleh mengubah elemen individu dengan indeks mereka.

Contoh Menggunakan senarai untuk item yang boleh dimainkan, diperintahkan:

 <code class="python">my_list = [1, 2, 3] my_list.append(4) # Adds 4 to the end my_list.insert(1, 1.5) # Inserts 1.5 at index 1 my_list[2] = 2.5 # Changes the value at index 2 to 2.5 print(my_list) # Output: [1, 1.5, 2.5, 3, 4]</code>
Salin selepas log masuk

Bagaimanakah saya dapat mengambil item dengan cekap menggunakan kekunci di Python?

Untuk mendapatkan item dengan cekap menggunakan kekunci di Python, anda harus menggunakan kamus . Kamus direka khusus untuk carian berasaskan kunci yang cepat, dengan kerumitan masa purata O (1) untuk mengakses elemen. Ini menjadikan mereka sesuai untuk situasi di mana anda perlu mengakses nilai -nilai yang kerap oleh kekunci yang berkaitan.

Contoh menggunakan kamus untuk pengambilan semula berasaskan kunci:

 <code class="python">my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'} print(my_dict['name']) # Output: Alice print(my_dict.get('age')) # Output: 30</code>
Salin selepas log masuk

Kaedah get() amat berguna kerana ia membolehkan anda menentukan nilai lalai jika kunci tidak dijumpai, yang dapat membantu mengelakkan pengecualian KeyError :

 <code class="python">print(my_dict.get('country', 'Unknown')) # Output: Unknown</code>
Salin selepas log masuk

Apakah implikasi prestasi menggunakan set untuk ujian keahlian?

Menggunakan set untuk ujian keahlian menawarkan kelebihan prestasi yang signifikan. Kerumitan masa untuk ujian keahlian dalam set adalah O (1) secara purata, yang bermaksud ia sangat berkesan untuk dataset yang besar. Ini kerana set dilaksanakan menggunakan jadual hash, yang membolehkan carian cepat.

Contoh menggunakan set untuk ujian keahlian:

 <code class="python">my_set = {1, 2, 3, 4, 5} print(3 in my_set) # Output: True print(6 in my_set) # Output: False</code>
Salin selepas log masuk

Sebaliknya, memeriksa keahlian dalam senarai mempunyai kerumitan masa O (n), yang boleh menjadi lambat untuk senarai besar. Inilah perbandingan:

 <code class="python">my_list = [1, 2, 3, 4, 5] print(3 in my_list) # Output: True, but slower for larger lists</code>
Salin selepas log masuk

Oleh itu, jika operasi utama anda melibatkan pemeriksaan sama ada item wujud dalam koleksi, menggunakan set secara dramatik dapat meningkatkan prestasi kod anda, terutama dengan dataset yang lebih besar.

Atas ialah kandungan terperinci Apakah perbezaan antara senarai, tuple, set, dan kamus?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan