Rumah >pembangunan bahagian belakang >Tutorial Python >Adakah Python Menawarkan Set Tempahan Asli, dan Bagaimana Satu Set Boleh Ditiru?

Adakah Python Menawarkan Set Tempahan Asli, dan Bagaimana Satu Set Boleh Ditiru?

Barbara Streisand
Barbara Streisandasal
2025-01-05 11:04:40115semak imbas

Does Python Offer a Native Ordered Set, and How Can One Be Emulated?

Meneroka Set Tertib dalam Python

Python menawarkan kamus yang dipesan, tetapi adakah ia menyediakan set tersusun? Mari kita selidiki pertanyaan ini dan temui penyelesaian berpotensi yang tersedia dalam Python.

Ketiadaan Set Tertib

Tidak seperti kamus tersusun, Python tidak menyokong set tersusun secara asli. Walau bagaimanapun, memperkenalkan set tersusun boleh menjadi ciri berfaedah untuk mengekalkan susunan elemen sambil menghapuskan pendua.

Meniru Set Tertib dengan Kamus

Bermula dengan Python 3.7, mudah kamus boleh digunakan sebagai set tertib dengan menggunakan kaedah kelas dict fromkeys(). Kaedah ini hanya mengambil kunci (menetapkan nilai kepada Tiada), dengan berkesan meniru fungsi set tersusun.

Contoh Penggunaan

Untuk mempamerkan penggunaan, pertimbangkan senarai kata kunci: [ 'foo', 'bar', 'bar', 'foo', 'baz', 'foo']. Untuk menapis pendua sambil mengekalkan susunan, hanya gunakan kaedah fromkeys() dan dapatkan semula kunci().

>>> keywords = ['foo', 'bar', 'bar', 'foo', 'baz', 'foo']

>>> list(dict.fromkeys(keywords))
['foo', 'bar', 'baz']

Alternatif untuk Versi Python Lama

Untuk yang lebih lama Versi Python, kelas collections.OrdedDict boleh berfungsi sebagai set tersusun. Ia menyediakan fungsi yang serupa untuk meniru set tersusun dengan kamus.

Kesimpulannya, walaupun Python tidak menawarkan set tertib asli, penggunaan bijak kamus dan koleksi.Kelas OrderedDict boleh melaksanakan tugas yang sama dengan berkesan, membolehkan pembangun mengendalikan memesan set dalam kod Python mereka.

Atas ialah kandungan terperinci Adakah Python Menawarkan Set Tempahan Asli, dan Bagaimana Satu Set Boleh Ditiru?. 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