Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Melaksanakan Operasi Set Sambil Mengekalkan Susunan Elemen Asal?

Bagaimanakah Saya Boleh Melaksanakan Operasi Set Sambil Mengekalkan Susunan Elemen Asal?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-16 16:41:10253semak imbas

How Can I Perform Set Operations While Preserving the Original Order of Elements?

Tetapkan Operasi dan Pemeliharaan Tertib

Apabila menukar senarai kepada set, susunan elemen berubah kerana set adalah struktur data tidak tertib yang mengutamakan cepat ujian keahlian. Mereka tidak mengekalkan susunan sisipan asal.

Memelihara Susunan dalam Operasi Set

Untuk melaksanakan operasi set tanpa kehilangan susunan awal, pertimbangkan pilihan berikut:

1. Senaraikan Pemahaman untuk Perbezaan Set

Jika anda mempunyai senarai biasa dan perlu mengalih keluar set elemen sambil mengekalkan susunan, gunakan pemahaman senarai:

a = [1, 2, 20, 6, 210]
b = set([6, 20, 1])
[x for x in a if x not in b]  # [2, 210]

2 . Kunci Kamus untuk Set Tertib

Untuk struktur data dengan ujian keahlian pantas dan pemeliharaan susunan sisipan, gunakan kekunci kamus Python (bermula daripada Python 3.7):

a = dict.fromkeys([1, 2, 20, 6, 210])
b = dict.fromkeys([6, 20, 1])
dict.fromkeys(x for x in a if x not in b)  # {2: None, 210: None}

3. Collections.OrderedDict (Sokongan Legasi)

Untuk versi Python yang lebih lama, bergantung pada koleksi.OrderedDict:

a = collections.OrderedDict.fromkeys([1, 2, 20, 6, 210])
b = collections.OrderedDict.fromkeys([6, 20, 1])
collections.OrderedDict.fromkeys(x for x in a if x not in b)  # OrderedDict([(2, None), (210, None)])

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Operasi Set Sambil Mengekalkan Susunan Elemen Asal?. 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
Artikel sebelumnya:Bunga dalam PyTorchArtikel seterusnya:Bunga dalam PyTorch