Temukan duplikat dalam dua daftar python

Dalam posting ini, Anda akan belajar cara menemukan perbedaan daftar Python, yang berarti item apa yang berbeda antara dua daftar

Secara khusus, Anda akan belajar. cara menemukan perbedaan antara daftar saat urutan dan duplikat penting, saat tidak penting, dan cara menemukan perbedaan simetris antara dua daftar

Jawaban Singkat. Gunakan Atur Pengurangan

list1 = [1,2,3,4,5,6]
list2 = [2,4,5,7]

difference = list(set(list1) - set(list2))
print(difference)

# Returns [1, 3, 6]

Daftar isi

Apa Perbedaan Daftar Python?

Perbedaan daftar Python mengacu pada menemukan item yang ada di satu daftar, tetapi tidak di daftar lainnya. Ada dua hal utama yang perlu dipahami di sini

  1. Urutan perbandingan itu penting. jika Anda ingin menemukan item dalam satu daftar tetapi tidak di daftar lain, Anda perlu menggunakan itu sebagai pembanding Anda
  2. Apakah pengulangan itu penting. karena daftar dapat berisi nilai duplikat, beberapa metode akan bekerja lebih baik untuk ini

Pemesanan Perbandingan

Katakanlah kita memiliki dua daftar berbeda

list1 = [1,2,3,4,5,6]
list2 = [2,4,5,7]
_

Jika kita menghitung selisih antara daftar1 dan daftar2, kita akan menemukan bahwa daftar1 berisi

list1 = [1,2,3,4,5,6]
list2 = [2,4,5,7]
0, sedangkan daftar2 tidak

Jika kita menghitung perbedaan antara list2 dan list1, kita akan menemukan bahwa list2 berisi

list1 = [1,2,3,4,5,6]
list2 = [2,4,5,7]
1, sedangkan list1 tidak

Jika Anda ingin menemukan daftar item yang ada di salah satu daftar tetapi tidak keduanya,

Duplikat dalam Daftar

Sekarang, untuk lebih memahami, mari kita lihat tiga daftar berbeda

list1 = [1,2,3,4,5,6]
list1b = [1,2,3,3,4,5,6]
list2 = [2,4,5,7]
_

Kami memiliki daftar 

list1 = [1,2,3,4,5,6]
list2 = [2,4,5,7]
2 dan 
list1 = [1,2,3,4,5,6]
list2 = [2,4,5,7]
3 yang hanya berisi item unik. Namun, kami juga memiliki
list1 = [1,2,3,4,5,6]
list2 = [2,4,5,7]
4 yang berisi dua 3. Apakah kita menghitung perbedaan daftar duplikat

  • Antara 
    list1 = [1,2,3,4,5,6]
    list2 = [2,4,5,7]
    
    2 dan 
    list1 = [1,2,3,4,5,6]
    list2 = [2,4,5,7]
    
    3, kami akan mengembalikan 
    list1 = [1,2,3,4,5,6]
    list2 = [2,4,5,7]
    
    7
  • Namun, jika kami melakukan hal yang sama antara 
    list1 = [1,2,3,4,5,6]
    list2 = [2,4,5,7]
    
    _4 dan 
    list1 = [1,2,3,4,5,6]
    list2 = [2,4,5,7]
    
    3, kami akan mengembalikan 
    list1 = [1,2,3,4,5,6]
    list1b = [1,2,3,3,4,5,6]
    list2 = [2,4,5,7]
    0

Sekarang, jika kita menghitung perbedaan daftar yang tidak berulang, kedua perbedaan tersebut hanya akan menjadi ________ 1 _______7

Hitung Perbedaan Daftar dengan Item Duplikat dengan For Loop

Untuk menghitung perbedaan daftar berulang di Python, kita bisa menggunakan for-loop. Untuk penyegaran tentang for-loop, lihat postingan saya di sini dan tutorial video saya di sini

Mari kita lihat bagaimana kita bisa menghitung perbedaan berulang menggunakan perulangan for

list1 = [1,2,3,3,4,5,6]
list2 = [2,4,5,7]

difference = list()

for item in list1:
    if item not in list2:
        difference.append(item)

print(difference)

# Returns: [1, 3, 3, 6]

Kita juga dapat menjalankan kebalikannya untuk menghitung selisih antara 

list1 = [1,2,3,4,5,6]
list2 = [2,4,5,7]
3 dan 
list1 = [1,2,3,4,5,6]
list2 = [2,4,5,7]
2

list1 = [1,2,3,3,4,5,6]
list2 = [2,4,5,7]

difference = list()

for item in list2:
    if item not in list1:
        difference.append(item)

print(difference)

#Returns: [7]

Hitung Perbedaan Daftar dengan Pemahaman Daftar

Untuk perulangan bisa sedikit rumit untuk ditulis, terutama mengingat kebutuhan untuk mendeklarasikan daftar kosong terlebih dahulu. Kita dapat menyelesaikan tugas yang sama dengan menggunakan pemahaman daftar

Untuk penyegaran pada pemahaman daftar, lihat posting saya di sini dan tutorial video saya di sini

Sekarang, mari kita lihat bagaimana kita dapat menggunakan pemahaman daftar untuk menemukan perbedaan antara dua daftar

list1 = [1,2,3,4,5,6]
list2 = [2,4,5,7]

list1diff2 = [item for item in list1 if item not in list2]
list2diff1 = [item for item in list2 if item not in list1]

print('list1diff2 is: ', list1diff2)
print('list2diff1 is: ', list2diff1)

# Returns:
# list1diff2 is:  [1, 3, 6]
# list2diff1 is:  [7]

Meskipun Anda mengorbankan sedikit keterbacaan, Anda mendapatkan kebebasan untuk menulis seluruh pemahaman ini dalam satu baris kode

Perbedaan Daftar Python dengan Pengurangan Set

Menemukan perbedaan daftar antara dua daftar jika Anda tidak perlu khawatir tentang pengulangan jauh lebih cepat

Apa yang akan kita lakukan adalah

  1. Ubah kedua daftar menjadi set,
  2. Temukan perbedaan antara kedua himpunan, dan
  3. Ubah set yang dihasilkan menjadi daftar

Mari kita lihat bagaimana kita bisa mencapai ini

list1 = [1,2,3,4,5,6]
list2 = [2,4,5,7]

difference = list(set(list1) - set(list2))
print(difference)

# Returns: [1,3,6]

Manfaat dari pendekatan ini adalah kecepatan. Bekerja dengan set jauh lebih efisien daripada mengulangi item dalam daftar. Imbalannya, seperti yang disebutkan sebelumnya, adalah item berulang hanya akan muncul satu kali

Hitung Selisih Daftar dengan Himpunan. Perbedaan Metode

Mirip dengan contoh di atas, kita dapat menggunakan metode 

list1 = [1,2,3,4,5,6]
list1b = [1,2,3,3,4,5,6]
list2 = [2,4,5,7]
4 untuk menghitung selisih antara dua daftar

Dalam pendekatan ini, kami akan

  1. Ubah daftar perbandingan menjadi satu set,
  2. Terapkan metode 
    list1 = [1,2,3,4,5,6]
    list1b = [1,2,3,3,4,5,6]
    list2 = [2,4,5,7]
    4 padanya dan berikan daftar lainnya
  3. Konversikan kembali ke daftar

Mari kita lihat seperti apa praktiknya

list1 = [1,2,3,4,5,6]
list2 = [2,4,5,7]

difference = list(set(list1).difference(list2))
print(difference)

# Returns: [1,3,6]

Lihat beberapa tutorial Python lainnya tentang datagy, termasuk panduan lengkap kami untuk menata gaya Panda dan ikhtisar komprehensif kami tentang Tabel Pivot di Panda

Bagaimana cara menghitung Perbedaan Daftar Simetris Python?

Perbedaan simetris di Python adalah daftar item yang ada di salah satu daftar, tetapi tidak di kedua daftar. Ingatlah bahwa dengan semua metode di atas, kami benar-benar mengatakannya. “barang-barang ini ada di daftar perbandingan, tetapi tidak di daftar yang lain”

Dengan perbedaan simetris, kami katakan. “barang-barang ini ada di salah satu daftar, tetapi tidak di keduanya”

Untuk melakukannya, kami akan mengandalkan metode 

list1 = [1,2,3,4,5,6]
list1b = [1,2,3,3,4,5,6]
list2 = [2,4,5,7]
6

list1 = [1,2,3,4,5,6]
list2 = [2,4,5,7]

symmetrical_difference = list(set(list1).symmetric_difference(set(list2)))
print(symmetrical_difference)

# Returns: [1,3,6,7]

Kode di atas mungkin agak rumit untuk dibaca, jadi mari kita bagi menjadi beberapa langkah lagi

list1 = [1,2,3,4,5,6]
list2 = [2,4,5,7]

set1 = set(list1)
# {1,2,3,4,5,6}

set2 = set(list2)
# {2,4,5,7}

set_difference = set1.symmetric_difference(set2)
# {1,3,6,7}

list_difference = list(set_difference)
print(list_difference)
# Returns: [1,3,6,7]

Ini menyelesaikan hal yang sama, tetapi mungkin sedikit lebih mudah untuk diikuti

Kesimpulan

Dalam posting ini, Anda belajar cara menghitung perbedaan daftar Python. Ini berarti Anda telah mempelajari cara menemukan item yang ada di satu daftar tetapi tidak di daftar lainnya. Anda telah mempelajari cara melakukan ini menggunakan for-loop, pemahaman daftar, dan mengatur perbedaan

Anda juga belajar cara menghitung perbedaan simetris antara dua daftar, artinya menemukan item yang ada di salah satu daftar, tetapi tidak di keduanya

Bagaimana Anda membandingkan dua daftar untuk menemukan duplikat?

Pilih kedua kolom data yang ingin Anda bandingkan. Pada tab Beranda, dalam pengelompokan Gaya, di bawah tarik-turun Pemformatan Bersyarat, pilih Sorot Aturan Sel, lalu Nilai Duplikat . Pada kotak dialog Duplicate Values ​​pilih warna yang Anda inginkan dan klik OK. Perhatikan Unik juga merupakan pilihan.

Bagaimana cara menemukan nilai yang sama dalam dua daftar dengan Python?

Menggunakan Fungsi interseksi() . Seperti namanya, fungsi interseksi() adalah fungsi python bawaan yang digunakan untuk mengembalikan sebuah set yang berisi elemen-elemen yang sama dalam dua set.

Bagaimana cara membandingkan 2 daftar dengan Python?

Anda dapat menggunakan fungsi Python map() bersama dengan functools. fungsi pengurangan() untuk membandingkan item data dari dua daftar. Saat Anda menggunakannya dalam kombinasi, fungsi map() menerapkan fungsi yang diberikan ke setiap elemen dan fungsi reduce() memastikan bahwa fungsi tersebut diterapkan secara berurutan.

Bagaimana Anda membandingkan dua daftar dan menemukan perbedaan dalam Python?

Perbedaan antara dua daftar (katakanlah daftar1 dan daftar2) dapat ditemukan dengan menggunakan fungsi sederhana berikut. Dengan Menggunakan fungsi di atas, perbedaannya dapat ditemukan menggunakan diff(temp2, temp1) atau diff(temp1, temp2) . Keduanya akan memberikan hasil ['Empat', 'Tiga'].