Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah set dan frozenset dilaksanakan dalam Python?

Bagaimanakah set dan frozenset dilaksanakan dalam Python?

WBOY
WBOYasal
2023-10-20 14:16:50691semak imbas

Bagaimanakah set dan frozenset dilaksanakan dalam Python?

Set dan set tidak berubah (set beku) dalam Python ialah dua struktur data yang digunakan untuk menyimpan elemen unik. Mereka adalah objek boleh ubah dan tidak boleh ubah masing-masing, jadi mereka mempunyai sifat dan penggunaan yang berbeza. Artikel ini akan memperkenalkan secara terperinci cara set dan frozenset dilaksanakan dalam Python, dan memberikan contoh kod khusus.

1. Cara melaksanakan set:
Dalam Python, set dilaksanakan menggunakan jadual cincang. Jadual cincang ialah struktur data yang cekap yang memanfaatkan keupayaan carian pantas bagi fungsi cincang. Unsur-unsur dalam koleksi tidak berada dalam susunan tertentu dan tidak boleh diulang.

Pelaksanaan koleksi adalah berdasarkan prinsip jadual cincang, dengan menyimpan nilai cincang setiap elemen dalam jadual cincang sebagai indeks. Apabila kami menambah elemen pada koleksi, Python mengira nilai cincang elemen dan menggunakan nilai itu sebagai indeks untuk menyimpan elemen di lokasi yang sepadan. Apabila kita perlu menentukan sama ada unsur wujud dalam set, Python akan mengira nilai cincang elemen itu sekali lagi dan mencari kedudukan yang sepadan dalam jadual cincang Jika unsur wujud pada kedudukan itu, ia bermakna elemen itu wujud dalam set ; jika tidak, elemen itu tidak wujud dalam koleksi.

Berikut ialah kod sampel ringkas yang menunjukkan penggunaan asas koleksi:

# 创建集合
s = set()
print(s)  # 输出: set()

# 添加元素
s.add(1)
s.add(2)
s.add(3)
print(s)  # 输出: {1, 2, 3}

# 判断元素是否存在
print(1 in s)  # 输出: True
print(4 in s)  # 输出: False

# 删除元素
s.remove(2)
print(s)  # 输出: {1, 3}

2. Cara melaksanakan koleksi tidak berubah (set beku):
Tidak seperti koleksi, elemen dalam koleksi tidak berubah adalah tidak berubah, iaitu elemen Tidak boleh diubah suai . Oleh itu, koleksi tidak berubah dilaksanakan secara berbeza daripada koleksi.

Pelaksanaan koleksi tidak berubah juga berdasarkan jadual cincang, tetapi jadual cincang dibekukan apabila ia dicipta, menjadikannya objek tidak berubah. Akibatnya, kami tidak boleh menambah, memadam atau mengubah suai elemen pada koleksi yang tidak boleh diubah.

Berikut ialah kod sampel ringkas yang menunjukkan penggunaan asas koleksi tidak berubah:

# 创建不可变集合
fs = frozenset([1, 2, 3])
print(fs)  # 输出: frozenset({1, 2, 3})

# 尝试添加元素(报错)
fs.add(4)  # 报错: AttributeError: 'frozenset' object has no attribute 'add'

# 尝试删除元素(报错)
fs.remove(2)  # 报错: AttributeError: 'frozenset' object has no attribute 'remove'

# 判断元素是否存在
print(1 in fs)  # 输出: True
print(4 in fs)  # 输出: False

Ringkasan:
Set dan set tidak berubah (set beku) ialah struktur data yang digunakan untuk menyimpan elemen unik dalam Python. Pelaksanaan koleksi adalah berdasarkan jadual cincang, manakala koleksi tidak berubah dibekukan menjadi objek tidak berubah selepas jadual cincang dibuat. Melalui contoh kod di atas, kita boleh lebih memahami penggunaan dan pelaksanaan koleksi dan koleksi tidak berubah.

Atas ialah kandungan terperinci Bagaimanakah set dan frozenset dilaksanakan dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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