Persimpangan daftar python dengan duplikat

Dalam tutorial ini, Anda akan belajar cara menggunakan Python untuk menemukan persimpangan antara dua daftar. Persimpangan berarti menemukan elemen umum antara dua daftar. Biasanya, persimpangan adalah set-based, artinya nilainya tidak terduplikasi

Anda akan mempelajari beberapa metode naif untuk menemukan persimpangan antara dua daftar Python, termasuk untuk loop dan pemahaman daftar, menggunakan metode set .intersection() dan menggunakan numpy

Jawaban Cepat. Gunakan Operasi Set Python

Persimpangan daftar python dengan duplikat

Daftar isi

Menggunakan Python For Loop untuk Menemukan Persimpangan Antara Dua Daftar

Menggunakan loop Python for adalah cara yang mudah dan intuitif untuk menemukan persimpangan antara dua daftar. Manfaat pemahaman di sini datang pada kinerja yang sukses dengan daftar ukuran yang jauh lebih besar

Apa yang akan kita lakukan, adalah mengulang setiap item dalam daftar dan melihat apakah itu ada di item lainnya. Jika ya, maka kami menambahkannya ke daftar baru. Jika tidak, maka kita tidak akan melakukan apa-apa

Mari kita lihat seperti apa kode ini nantinya

# Find intesection between two Python lists using a for loop
list1 = ['a', 'b', 'c', 'd', 'e']
list2 = ['b', 'd', 'e', 'f', 'g']

intersection = list()

for item in list1:
    if item in list2:
        intersection.append(item)

print(intersection)

# Returns: ['b', 'd', 'e']

Di bagian selanjutnya, Anda akan belajar cara mengubah perulangan for ini menjadi pemahaman daftar Python

Ingin mempelajari lebih lanjut tentang for-loop Python? . Ingin menonton video saja?

Menggunakan Pemahaman Daftar untuk menemukan Persimpangan Antara Dua Daftar Python

Dalam banyak kasus, loop for Python dapat diubah menjadi pemahaman daftar. Manfaat melakukan ini adalah kemudahan pengkodeannya. Pemahaman daftar Python hadir dengan beberapa manfaat utama

  1. Anda tidak perlu membuat contoh daftar baru yang kosong
  2. Kode umumnya hanya mencakup satu baris, bukan beberapa baris

Pada dasarnya, algoritme yang akan kita ikuti sama dengan for loop. kami mengulang setiap item dan melihat apakah itu ada di daftar lain. Jika ya, maka kami menambahkannya ke daftar baru kami

Mari kita lihat seperti apa tampilannya di Python

# Find intesection between two Python lists using a list comprehension
list1 = ['a', 'b', 'c', 'd', 'e']
list2 = ['b', 'd', 'e', 'f', 'g']

intersection = [item for item in list1 if item in list2]

print(intersection)

# Returns: ['b', 'd', 'e']
_

Mirip dengan metode for loop, saat ukuran daftar Anda bertambah, ini dapat mengalami beberapa gangguan kinerja. Di sinilah metode selanjutnya berperan. Di bagian selanjutnya, Anda akan belajar cara menggunakan metode set Python untuk menemukan persimpangan antara dua daftar

Ingin mempelajari lebih lanjut tentang pemahaman daftar Python? . Lebih dari pembelajar visual, lihat tutorial YouTube saya di sini

Menggunakan Operasi Set Python untuk menemukan Persimpangan Antara Dua Daftar

Set Python mirip dengan daftar, tetapi mereka memiliki sejumlah perbedaan utama. Saat daftar diurutkan, set tidak diurutkan;

Set juga dilengkapi dengan sejumlah metode bermanfaat. Pada contoh di bawah ini, kami akan menggunakan metode .intersection() untuk menghasilkan satu set item yang ada di antara kedua set

Mari kita lihat seperti apa kode kita

# Find intesection between two Python lists using set.intersection()
list1 = ['a', 'b', 'c', 'd', 'e']
list2 = ['b', 'd', 'e', 'f', 'g']

intersection = list(set(list1).intersection(set(list2)))

print(intersection)

# Returns: ['b', 'd', 'e']

Mari kita lihat apa yang telah kita lakukan

  1. Kami mengubah kedua daftar menjadi set
  2. Kami kemudian menerapkan metode .intersection()
  3. Terakhir, kami mengonversi set terakhir kembali ke daftar

Di bagian berikutnya, Anda akan mempelajari cara menggunakan operator & untuk menemukan persimpangan antara dua daftar

Ingin mempelajari cara menggunakan fungsi Python

# Find intesection between two Python lists using a list comprehension
list1 = ['a', 'b', 'c', 'd', 'e']
list2 = ['b', 'd', 'e', 'f', 'g']

intersection = [item for item in list1 if item in list2]

print(intersection)

# Returns: ['b', 'd', 'e']
0 untuk mengulangi dua daftar?

Menggunakan And Operator untuk Menemukan Persimpangan Daftar Python

Pada contoh di atas, Anda telah mempelajari cara menggunakan metode set, metode .intersection(), untuk menemukan persimpangan antara dua daftar. Kita juga dapat menggunakan metode boolean, menggunakan operator &, untuk mencari irisan antara dua himpunan

Menggunakan operator ini mengevaluasi apakah item ada di kedua set dan mengembalikan item yang memenuhi kriteria

Mari kita lihat seperti apa tampilannya

# Find intesection between two Python lists using &
list1 = ['a', 'b', 'c', 'd', 'e']
list2 = ['b', 'd', 'e', 'f', 'g']

intersection = list(set(list1) & set(list2))

print(intersection)

# Returns: ['b', 'd', 'e']

Dalam contoh berikutnya, Anda akan mempelajari cara menggunakan

# Find intesection between two Python lists using a list comprehension
list1 = ['a', 'b', 'c', 'd', 'e']
list2 = ['b', 'd', 'e', 'f', 'g']

intersection = [item for item in list1 if item in list2]

print(intersection)

# Returns: ['b', 'd', 'e']
4 untuk memeriksa item yang ada di dua daftar

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

Menggunakan Numpy untuk Menemukan Persimpangan Antara Dua Daftar

Numpy adalah pustaka bermanfaat yang menggunakan objek seperti daftar yang disebut

# Find intesection between two Python lists using a list comprehension
list1 = ['a', 'b', 'c', 'd', 'e']
list2 = ['b', 'd', 'e', 'f', 'g']

intersection = [item for item in list1 if item in list2]

print(intersection)

# Returns: ['b', 'd', 'e']
5. Array ini mirip dengan daftar Python tetapi memungkinkan kita untuk bekerja dengan metode array numpy. Salah satu metode ini adalah metode
# Find intesection between two Python lists using a list comprehension
list1 = ['a', 'b', 'c', 'd', 'e']
list2 = ['b', 'd', 'e', 'f', 'g']

intersection = [item for item in list1 if item in list2]

print(intersection)

# Returns: ['b', 'd', 'e']
_6, yang memungkinkan kita untuk menemukan persimpangan antara array 1 dimensi

Mari kita lihat seperti apa kode ini

# Find intesection between two Python lists using numpy
list1 = ['a', 'b', 'c', 'd', 'e']
list2 = ['b', 'd', 'e', 'f', 'g']

intersection = list(np.intersect1d(list1, list2))

print(intersection)

# Returns: ['b', 'd', 'e']
_

Mari jelajahi apa yang telah kita lakukan di sini

  1. Kami meneruskan dua daftar kami ke metode
    # Find intesection between two Python lists using a list comprehension
    list1 = ['a', 'b', 'c', 'd', 'e']
    list2 = ['b', 'd', 'e', 'f', 'g']
    
    intersection = [item for item in list1 if item in list2]
    
    print(intersection)
    
    # Returns: ['b', 'd', 'e']
    _7
  2. Ini mengembalikan
    # Find intesection between two Python lists using a list comprehension
    list1 = ['a', 'b', 'c', 'd', 'e']
    list2 = ['b', 'd', 'e', 'f', 'g']
    
    intersection = [item for item in list1 if item in list2]
    
    print(intersection)
    
    # Returns: ['b', 'd', 'e']
    _5 yang hanya menyertakan persimpangan antara dua daftar
  3. Terakhir, kami mengonversi array ini kembali menjadi daftar

Perlu memeriksa apakah ada kunci dalam kamus Python?

Kesimpulan

Dalam posting ini, Anda belajar bagaimana menggunakan Python untuk menemukan persimpangan antara dua daftar. Anda belajar bahwa cara termudah untuk melakukan ini adalah dengan menggunakan operasi set Python – khususnya, menggunakan metode .intersection(). Anda juga mempelajari beberapa implementasi naif, termasuk menggunakan for loop dan daftar pemahaman. Metode ini, meskipun tidak selalu yang tercepat untuk ditulis, memungkinkan Anda memperoleh pemahaman yang kuat tentang cara kerja algoritme ini. Terakhir, Anda mempelajari cara menggunakan

# Find intesection between two Python lists using a list comprehension
list1 = ['a', 'b', 'c', 'd', 'e']
list2 = ['b', 'd', 'e', 'f', 'g']

intersection = [item for item in list1 if item in list2]

print(intersection)

# Returns: ['b', 'd', 'e']
4 untuk menemukan persimpangan antara dua daftar

Apakah persimpangan termasuk duplikat?

Seperti yang diharapkan untuk digunakan dalam konteks manipulasi set, operator persimpangan menghapus duplikat . Namun, seperti operator infiks mana pun, canggung untuk digunakan dalam saluran pipa.

Bagaimana Anda menggabungkan duplikat dalam daftar Python?

Mari kita bahas cara-cara tertentu untuk melakukannya. .
Metode #1. Menggunakan koleksi. .
Metode #2. Menggunakan itertools. .
Metode #3. Menggunakan count() dan * operator
Metode #4. Menggunakan operator set() dan *

Bagaimana cara menggabungkan dua daftar dan menghapus duplikat dengan Python?

Bagaimana Menggabungkan Dua Daftar Python dan Menghapus Duplikat di Daftar Kedua? .
Ubah daftar pertama dan kedua menjadi satu set menggunakan set(. ) konstruktor
Gunakan operasi set minus untuk mendapatkan semua elemen yang ada di daftar kedua tetapi tidak ada di daftar pertama
Buat daftar baru dengan menggabungkan elemen tersebut ke daftar pertama

Bisakah Anda menggunakan persimpangan untuk daftar dengan Python?

Persimpangan dua daftar berarti kita perlu mengambil semua elemen yang sama untuk kedua daftar awal dan menyimpannya ke dalam daftar lain. Sekarang ada berbagai cara di Python, di mana kita dapat melakukan titik-temu daftar .