Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Program Python untuk mengira perbezaan simetri antara dua senarai

Program Python untuk mengira perbezaan simetri antara dua senarai

WBOY
WBOYke hadapan
2023-08-28 08:57:291451semak imbas

Program Python untuk mengira perbezaan simetri antara dua senarai

Dalam Python, anda boleh menggunakan senarai untuk menyimpan berbilang item dalam satu pembolehubah. Satu daripada empat jenis data terbina dalam Python untuk menyimpan koleksi data ialah senarai; tiga yang lain ialah tupel, set dan kamus, masing-masing dengan tujuan yang unik.

Apakah itu senarai?

Kurungan segi empat sama digunakan untuk membina senarai. Alat yang paling berkuasa dalam Python ialah senarai, kerana ia tidak semestinya homogen. Jenis data seperti integer, rentetan dan objek semuanya boleh ditemui dalam senarai. Memandangkan senarai boleh berubah, ia boleh ditukar walaupun selepas ia dibuat.

Perbezaan simetri dalam senarai

Set elemen yang berada dalam LIST1 atau LIST2 tetapi tidak dalam kedua-duanya membentuk perbezaan simetri antara kedua-dua senarai LIST1 dan LIST2.

Terdapat pelbagai cara untuk mengira perbezaan simetri antara dua senarai dalam python, kami akan mengambil cara yang paling berkesan untuk mencari perbezaan yang sama.

Kami telah menukar senarai kepada set dan kemudian membuat perbezaan simetri antara set ini.

Algoritma

  • Buat Senarai

  • Tukar senarai ke set

  • Cetak perbezaan simetri set yang ditukar

  • Cetak perbezaan simetri senarai

Contoh

Dalam program berikut, menggunakan "dalam" kita boleh mencari perbezaan antara dua senarai. Kata kunci dalam mempunyai dua fungsi.

  • Tentukan sama ada nilai wujud dalam rentetan, senarai, tuple, julat, dsb.

  • Ulangi senarai dalam gelung for.

L_1 = [11, 12, 13]
L_2 = [12, 13, 42]
L_3 = [3, 42, 5]

# converting lists to set
set_1 = set(L_1)
set_2 = set(L_2)

# now print the symmetric difference when

# when the converted set is passed as a parameter
print(set_1.symmetric_difference(set_2))

# now print the symmetric difference when list is

# passed as a parameter by converting it to a set
print(set_2.symmetric_difference(L_3))

Output

{42, 11}
{13, 3, 12, 5}

Contoh

Di sini, kami mencipta dua senarai dan kemudian mencipta pembolehubah sementara kosong. Kami kemudiannya menggunakan gelung for untuk mengulang nombor dalam senarai. Pernyataan If menyemak sama ada nombor itu biasa dan kemudian menambahkan elemen pada pembolehubah sementara yang pertama dibuat. Kemudian cetak senarai dengan elemen yang berbeza.

list_1 = [1, 35, 20, 25, 70, 35, 80]
list_2 = [25, 80, 35]
temp_3 = []
for element in list_1:
   if element not in list_2:
      temp_3.append(element)
print(temp_3)

Output

[1, 20, 70]

Gunakan pemahaman senarai

Dalam pendekatan ini kami menukar senarai secara eksplisit kepada set dan kemudian menggunakan operator tolak untuk mengalih keluar hanya satu daripada senarai yang lain. Pergi ke Koleksi dalam Python untuk mendapatkan rujukan koleksi lain. Ini adalah strategi yang serupa dengan yang kami gunakan sebelum ini. Satu-satunya perbezaan ialah sintaks pemahaman senarai digunakan dan bukannya gelung bersarang.

Contoh

Program berikut membandingkan dua senarai: list_1 dan list_2. Ia mencipta satu set daripada senarai kedua dan kemudian menggunakannya untuk menapis sebarang nilai yang muncul dalam kedua-dua senarai. Hasilnya ialah senarai ditapis baharu (temp_3) yang mengandungi hanya elemen daripada list_1 yang tidak terdapat dalam SET_1 (list_2).

list_1 = [13, 15, 22, 25, 30, 54, 40]
list_2 = [54, 45, 30, 13]
SET_1 = set(list_2)
temp_3 = [x for x in list_1 if x not in SET_1]
print(temp_3)

Output

[15, 22, 25, 40]

Jangan gunakan set()

Dalam kaedah ini, elemen disalin daripada dua senarai menggunakan teknik penggabungan asas sambil menyemak secara berkala sama ada ia wujud dalam senarai lain.

Contoh

Dalam program berikut - kami mentakrifkan fungsi yang dipanggil Perbezaan yang menerima dua senarai sebagai parameter. Fungsi ini mencipta list_dif senarai baharu yang mengandungi item yang tidak terdapat dalam kedua-dua senarai asal. Ia kemudian mencetak senarai baharu ini dan perbezaan antara dua senarai asal. Dalam contoh ini ia mencetak [1, 12, 25, 22, 30, 20].

# this method helps to get difference of two lists

# by not using set()
def Difference(list1, list2):
   list_dif = [i for i in list_1 + list_2 if i not in list_1 or i not in list_2]
   return list_dif
list_1 = [1, 12, 25, 22, 30, 65, 70]
list_2 = [65, 20, 70]
list_3 = Difference(list_1, list_2)
print(list_3)

Output

[1, 12, 25, 22, 30, 20]

Gunakan perbezaan simetri

Simetriperbezaan ()Kaedah mengembalikan elemen dalam kumpulan pertama atau kedua. Tidak seperti elemen kongsi dua koleksi, kaedah ini tidak mengembalikan persimpangan.

Contoh

list_1 = [23, 18, 45, 25, 40, 23, 40]
list_2 = [23, 40, 35]
set_difference = set(list_1).symmetric_difference(set(list_2))
temp_3 = list(set_difference)
print(temp_3)

Output

[35, 45, 18, 25]

KESIMPULAN

Dalam artikel ini, kami menggunakan empat kaedah berbeza untuk mengira perbezaan simetri antara dua senarai melalui python. Setiap kaedah mempunyai beberapa keunikan dan cara yang berbeza untuk mendekati tugas.

Atas ialah kandungan terperinci Program Python untuk mengira perbezaan simetri antara dua senarai. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam