Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Menukar Senarai kepada Set Mengubah Susunan, dan Bagaimana Saya Boleh Mengekalkannya?

Mengapa Menukar Senarai kepada Set Mengubah Susunan, dan Bagaimana Saya Boleh Mengekalkannya?

Linda Hamilton
Linda Hamiltonasal
2024-12-30 22:18:13343semak imbas

Why Does Converting a List to a Set Change the Order, and How Can I Preserve It?

Pesan Perubahan dalam Set Penukaran

Apabila menukar senarai kepada set dalam Python, susunan elemen nampaknya diubah suai. Ini boleh membingungkan, kerana senarai mengekalkan susunan elemennya, manakala set ialah struktur data tidak tertib. Sebab percanggahan ini terletak pada sifat asas set.

Set direka bentuk untuk melaksanakan ujian keahlian yang cekap dan tidak mengekalkan susunan sisipan elemen. Ini kerana set diwakili secara dalaman sebagai jadual cincang, di mana unsur-unsur disimpan dalam cara yang tersusun untuk carian yang lebih pantas.

Cara Mengekalkan Pesanan

Jika anda memerlukan pemeliharaan mengikut susunan dalam koleksi data anda, terdapat beberapa alternatif untuk menggunakan set:

  • Pemahaman Senarai: Untuk melaksanakan operasi set sambil mengekalkan susunan asal, gunakan pemahaman senarai. Contohnya, untuk mengalih keluar elemen daripada senarai A berdasarkan set B, gunakan kod berikut:
B = set([6, 20, 1])
result = [x for x in A if x not in B]
  • Kamus Tertib (Python 3.7 ): Python kamus kini menyediakan fungsi OrderedDict, memastikan pemeliharaan pesanan sisipan. Untuk melaksanakan operasi set:
import collections
A = collections.OrderedDict.fromkeys([1, 2, 20, 6, 210])
B = collections.OrderedDict.fromkeys([6, 20, 1])
result = collections.OrderedDict.fromkeys(x for x in A if x not in B)
  • Versi Python Lama: Untuk versi Python sebelum 3.7, gunakan modul collections.OrderedDict.

Atas ialah kandungan terperinci Mengapa Menukar Senarai kepada Set Mengubah Susunan, dan Bagaimana Saya Boleh Mengekalkannya?. 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