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
- Urutan perbandingan itu penting. jika Anda ingin menemukan item dalam satu daftar tetapi tidak di daftar lain, Anda perlu menggunakan itu sebagai pembanding Anda
- 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
- Ubah kedua daftar menjadi set,
- Temukan perbedaan antara kedua himpunan, dan
- 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
- Ubah daftar perbandingan menjadi satu set,
- 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
- 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