Persimpangan python dari dua daftar tanpa duplikat

Teman saya Bill sebelumnya telah memberi tahu saya tentang kerennya Python sets. Namun saya belum menemukan kesempatan untuk menggunakannya sampai sekarang. Berikut adalah tiga fungsi yang menggunakan sets untuk menghapus entri duplikat dari daftar, menemukan persimpangan dua daftar, dan menemukan penyatuan dua daftar. Catatan, set_ diperkenalkan dengan Python 2. 4, jadi Python 2. 4 atau lebih baru diperlukan. Selain itu, item dalam daftar harus dapat di-hash dan urutan daftar tidak dipertahankan

Untuk informasi lebih lanjut tentang Python sets, lihat Referensi Perpustakaan

""" NOTES:
      - requires Python 2.4 or greater
      - elements of the lists must be hashable
      - order of the original lists is not preserved
"""
def unique(a):
    """ return the list with duplicate elements removed """
    return list(set(a))

def intersect(a, b):
    """ return the intersection of two lists """
    return list(set(a) & set(b))

def union(a, b):
    """ return the union of two lists """
    return list(set(a) | set(b))

if __name__ == "__main__": 
    a = [0,1,2,0,1,2,3,4,5,6,7,8,9]
    b = [5,6,7,8,9,10,11,12,13,14]
    print unique(a)
    print intersect(a, b)
    print union(a, b)


Hasil
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[8, 9, 5, 6, 7]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
_

Pos terkait

  • Contoh menggunakan groupby dan defaultdict Python untuk melakukan tugas yang sama — diposting 09-10-2014
  • tipe enum python — diposting 10-10-2012
  • Objek data Python dimotivasi oleh keinginan untuk nametuple yang dapat diubah dengan nilai default — diposting 03-08-2012
  • Cara mengurutkan daftar dikte dengan Python — diposting 02-04-2010
  • Contoh setdefault Python — diposting 09-02-2010
  • Cara mengganti item dalam daftar secara bersyarat — diposting 22-08-2008

Komentar


Derek mengomentari 25-02-2010

Anda mungkin juga ingin memeriksa ini. [http. //stackoverflow. com/questions/642763/python-intersection-of-two-lists]


Eliot berkomentar pada 25-02-2010

Derek. Terima kasih. Metode saya sederhana, tetapi memiliki keterbatasan


panta berkomentar pada 17-04-2011

terima kasih untuk di atas - sangat membantu. apakah Anda juga tahu solusi yang baik untuk persimpangan dan penyatuan tanpa menghilangkan duplikat sebelumnya?

Setiap struktur data bawaan di Python seperti daftar, kamus, dan tupel memiliki fitur yang membedakan

Berikut adalah beberapa fitur set di Python

  • Item duplikat tidak diperbolehkan. Jika item muncul beberapa kali, hanya satu item yang akan dikenali di set
  • Item dalam satu set tidak diurutkan. Urutan set berubah setiap kali digunakan
  • Nilai item dalam satu set tidak dapat dimodifikasi/diubah setelah set dibuat

Dalam artikel ini, Anda akan mempelajari cara membuat set. Anda juga akan mempelajari cara mengakses, menambah, dan menghapus item dalam satu set dengan Python

Kami akan menyimpulkan dengan berbicara tentang beberapa kasus penggunaan set dalam pemrograman Python dan matematika

Cara Membuat Set dengan Python

Kami menggunakan kurung kurawal untuk menyimpan item dalam satu set. Inilah yang terlihat seperti satu set

nameSet = {"John", "Jane", "Doe"}

print(nameSet)
# {'Jane', 'Doe', 'John'}

Pada kode di atas, kita membuat satu set bernama

nameSet = {"John", "Jane", "Doe", "Jane"}

print(nameSet)
# {'Jane', 'Doe', 'John'}
3

Anda akan melihat bahwa saat set dicetak, nilainya muncul dalam urutan yang berbeda. Ini adalah salah satu fitur set di Python yang saya sebutkan di atas

Berikut contoh lain dengan satu item duplikat

nameSet = {"John", "Jane", "Doe", "Jane"}

print(nameSet)
# {'Jane', 'Doe', 'John'}

Duplikat "Jane" diabaikan dalam contoh di atas. Ini karena item duplikat tidak diperbolehkan

Cara Mengakses Item dalam Set dengan Python

Anda dapat menggunakan loop untuk mengakses dan mencetak item dalam satu set. Anda tidak dapat menggunakan indeks item untuk mengaksesnya karena urutannya selalu berubah-- tidak ada item yang mempertahankan indeksnya

Ini sebuah contoh

nameSet = {"John", "Jane", "Doe"}

for names in nameSet:
    print(names)
    # John
    # Doe
    # Jane

Kami menggunakan loop

nameSet = {"John", "Jane", "Doe", "Jane"}

print(nameSet)
# {'Jane', 'Doe', 'John'}
_4 untuk mencetak item di
nameSet = {"John", "Jane", "Doe", "Jane"}

print(nameSet)
# {'Jane', 'Doe', 'John'}
3

Di bagian selanjutnya, Anda akan melihat cara menambahkan item ke set

Cara Menambahkan Item ke Set dengan Python

Anda dapat menambahkan item ke set dengan Python dengan menggunakan metode

nameSet = {"John", "Jane", "Doe", "Jane"}

print(nameSet)
# {'Jane', 'Doe', 'John'}
6 dengan item baru yang akan ditambahkan diteruskan sebagai parameter

Ini sebuah contoh

nameSet = {"John", "Jane", "Doe"}

nameSet.add("Ihechikara")

print(nameSet)
# {'John', 'Ihechikara', 'Doe', 'Jane'}
_

Kami menambahkan item baru – "Ihechikara" – ke set.

nameSet = {"John", "Jane", "Doe", "Jane"}

print(nameSet)
# {'Jane', 'Doe', 'John'}
_7

Anda juga dapat menambahkan item dari kumpulan lain atau struktur data lain (daftar, kamus, dan tupel) ke kumpulan dengan menggunakan metode

nameSet = {"John", "Jane", "Doe", "Jane"}

print(nameSet)
# {'Jane', 'Doe', 'John'}
8

Ini sebuah contoh

nameSet = {"John", "Jane", "Doe"}

nameSet2 = {"Jade", "Jay"}

nameSet.update(nameSet2)

print(nameSet)
# {'Doe', 'Jay', 'Jane', 'Jade', 'John'}

Untuk menambahkan nama dari

nameSet = {"John", "Jane", "Doe", "Jane"}

print(nameSet)
# {'Jane', 'Doe', 'John'}
_9 ke
nameSet = {"John", "Jane", "Doe", "Jane"}

print(nameSet)
# {'Jane', 'Doe', 'John'}
3, kami meneruskan
nameSet = {"John", "Jane", "Doe", "Jane"}

print(nameSet)
# {'Jane', 'Doe', 'John'}
9 sebagai parameter ke metode
nameSet = {"John", "Jane", "Doe", "Jane"}

print(nameSet)
# {'Jane', 'Doe', 'John'}
8.
nameSet = {"John", "Jane", "Doe"}

for names in nameSet:
    print(names)
    # John
    # Doe
    # Jane
_3

Cara Menghapus Item dalam Set dengan Python

Ada beberapa metode berbeda yang dapat Anda gunakan untuk menghapus item dalam satu set. Mari kita lihat mereka sekarang

Cara Menghapus Item dalam Set dengan Python Menggunakan Metode nameSet = {"John", "Jane", "Doe"} for names in nameSet: print(names) # John # Doe # Jane4

Anda dapat menggunakan metode

nameSet = {"John", "Jane", "Doe"}

for names in nameSet:
    print(names)
    # John
    # Doe
    # Jane
_4 untuk menghapus item tertentu. Ini sebuah contoh

nameSet = {"John", "Jane", "Doe"}

nameSet.discard("John")

print(nameSet)
# {'Doe', 'Jane'}

Pada contoh di atas, "John" diteruskan sebagai parameter ke metode

nameSet = {"John", "Jane", "Doe"}

for names in nameSet:
    print(names)
    # John
    # Doe
    # Jane
4 sehingga dihapus dari set

Cara Menghapus Item dalam Set dengan Python Menggunakan Metode nameSet = {"John", "Jane", "Doe"} for names in nameSet: print(names) # John # Doe # Jane7

Metode

nameSet = {"John", "Jane", "Doe"}

for names in nameSet:
    print(names)
    # John
    # Doe
    # Jane
_7 bekerja dengan cara yang sama seperti metode
nameSet = {"John", "Jane", "Doe"}

for names in nameSet:
    print(names)
    # John
    # Doe
    # Jane
4

nameSet = {"John", "Jane", "Doe"}

nameSet.remove("Jane")

print(nameSet)
# {'John', 'Doe'}

Cara Mengosongkan Set dengan Python Menggunakan Metode nameSet = {"John", "Jane", "Doe"} nameSet.add("Ihechikara") print(nameSet) # {'John', 'Ihechikara', 'Doe', 'Jane'}0

Untuk menghapus semua item dalam satu set, kami menggunakan metode

nameSet = {"John", "Jane", "Doe"}

nameSet.add("Ihechikara")

print(nameSet)
# {'John', 'Ihechikara', 'Doe', 'Jane'}
0

Ini sebuah contoh

nameSet = {"John", "Jane", "Doe"}

nameSet.clear()

print(nameSet)
# set()

Kapan Menggunakan Set dengan Python

Di bagian ini, kita akan membahas dua kasus penggunaan set yang penting di Python

Kita dapat menggunakan set untuk menghapus item duplikat di struktur data lainnya

Kami juga dapat melakukan beberapa operasi matematika keren seperti mendapatkan gabungan, persimpangan, selisih, dan selisih simetris dari dua atau lebih himpunan

Cara Menggunakan Set untuk Menghapus Item Duplikat di Struktur Data Lain

Kita dapat menggunakan set untuk membuang item duplikat di struktur data lain seperti daftar dan tupel

Ini berguna saat Anda berurusan dengan kumpulan data yang sangat besar yang hanya memerlukan unit individual item yang dikembalikan, bukan jumlah kemunculan item.

Ini sebuah contoh

numberList = [2, 2, 4, 8, 9, 10, 8, 2, 5, 7, 3, 4, 7, 9]

numberSet = set(numberList)

print(numberSet)
# {2, 3, 4, 5, 7, 8, 9, 10}

Pada kode di atas, kita membuat daftar angka yang disebut

nameSet = {"John", "Jane", "Doe"}

nameSet.add("Ihechikara")

print(nameSet)
# {'John', 'Ihechikara', 'Doe', 'Jane'}
2 yang memiliki beberapa kemunculan beberapa angka.
nameSet = {"John", "Jane", "Doe"}

nameSet.add("Ihechikara")

print(nameSet)
# {'John', 'Ihechikara', 'Doe', 'Jane'}
_3

Menggunakan metode

nameSet = {"John", "Jane", "Doe"}

nameSet.add("Ihechikara")

print(nameSet)
# {'John', 'Ihechikara', 'Doe', 'Jane'}
_4, kami mengonversi daftar
nameSet = {"John", "Jane", "Doe"}

nameSet.add("Ihechikara")

print(nameSet)
# {'John', 'Ihechikara', 'Doe', 'Jane'}
2 menjadi satu set.
nameSet = {"John", "Jane", "Doe"}

nameSet.add("Ihechikara")

print(nameSet)
# {'John', 'Ihechikara', 'Doe', 'Jane'}
_6

Saat set baru dicetak, semua duplikat nomor dihapus – kami hanya mendapatkan satu kejadian dari setiap nomor yang dikembalikan.

nameSet = {"John", "Jane", "Doe"}

nameSet.add("Ihechikara")

print(nameSet)
# {'John', 'Ihechikara', 'Doe', 'Jane'}
_7

Cara Melakukan Operasi Matematika Menggunakan Himpunan dengan Python

Himpunan dalam Python mirip dengan himpunan dalam matematika, dan kita bisa mendapatkan berbagai hasil berdasarkan hubungan yang ada antar himpunan

Di bagian ini, Anda akan melihat cara mendapatkan penyatuan, irisan, perbedaan, dan perbedaan simetris antara set dengan Python

Anda dapat melakukan semua operasi di bagian ini menggunakan lebih dari dua set. Untuk membuatnya sesederhana mungkin, kami akan menggunakan hanya dua set untuk setiap contoh

Cara Mendapatkan Union of Sets dengan Python

Penyatuan dua himpunan adalah himpunan dari semua item individual yang ada di kedua himpunan. Di serikat pekerja, duplikat diabaikan

Ini sebuah contoh

firstSet = {2, 3, 4, 5}

secondSet = {1, 3, 5, 7}

print(firstSet | secondSet)
# {1, 2, 3, 4, 5, 7}

Dalam contoh di atas, kami memiliki dua set –

nameSet = {"John", "Jane", "Doe"}

nameSet.add("Ihechikara")

print(nameSet)
# {'John', 'Ihechikara', 'Doe', 'Jane'}
8 dan
nameSet = {"John", "Jane", "Doe"}

nameSet.add("Ihechikara")

print(nameSet)
# {'John', 'Ihechikara', 'Doe', 'Jane'}
9

Menggunakan operator bilah vertikal (

nameSet = {"John", "Jane", "Doe"}

nameSet2 = {"Jade", "Jay"}

nameSet.update(nameSet2)

print(nameSet)
# {'Doe', 'Jay', 'Jane', 'Jade', 'John'}
_0), kami bisa mendapatkan gabungan dari dua set.
nameSet = {"John", "Jane", "Doe"}

nameSet2 = {"Jade", "Jay"}

nameSet.update(nameSet2)

print(nameSet)
# {'Doe', 'Jay', 'Jane', 'Jade', 'John'}
1

Penyatuan himpunan tersebut adalah sebagai berikut. {1, 2, 3, 4, 5, 7}. Anda dapat melihat bahwa dua set telah digabungkan untuk membentuk satu set tanpa ada duplikat

Cara Mendapatkan Persimpangan Himpunan dengan Python

Irisan dua himpunan adalah himpunan item yang sama untuk kedua himpunan. Dalam kasus kita, ini adalah sekumpulan item yang muncul di

nameSet = {"John", "Jane", "Doe"}

nameSet2 = {"Jade", "Jay"}

nameSet.update(nameSet2)

print(nameSet)
# {'Doe', 'Jay', 'Jane', 'Jade', 'John'}
2 dan
nameSet = {"John", "Jane", "Doe"}

nameSet2 = {"Jade", "Jay"}

nameSet.update(nameSet2)

print(nameSet)
# {'Doe', 'Jay', 'Jane', 'Jade', 'John'}
3

Ini sebuah contoh

nameSet = {"John", "Jane", "Doe", "Jane"}

print(nameSet)
# {'Jane', 'Doe', 'John'}
0

Dalam contoh ini, kami menggunakan operator

nameSet = {"John", "Jane", "Doe"}

nameSet2 = {"Jade", "Jay"}

nameSet.update(nameSet2)

print(nameSet)
# {'Doe', 'Jay', 'Jane', 'Jade', 'John'}
4 untuk mendapatkan persimpangan
nameSet = {"John", "Jane", "Doe"}

nameSet2 = {"Jade", "Jay"}

nameSet.update(nameSet2)

print(nameSet)
# {'Doe', 'Jay', 'Jane', 'Jade', 'John'}
2 dan
nameSet = {"John", "Jane", "Doe"}

nameSet2 = {"Jade", "Jay"}

nameSet.update(nameSet2)

print(nameSet)
# {'Doe', 'Jay', 'Jane', 'Jade', 'John'}
3.
nameSet = {"John", "Jane", "Doe"}

nameSet2 = {"Jade", "Jay"}

nameSet.update(nameSet2)

print(nameSet)
# {'Doe', 'Jay', 'Jane', 'Jade', 'John'}
7

Kami mendapat {3, 5} kembali karena 3 dan 5 muncul di kedua set

Cara Mendapatkan Perbedaan Antara Set dengan Python

Perbedaan antara dua set adalah set dari semua item yang ada di satu set tetapi tidak di set lainnya

Ini sebuah contoh

nameSet = {"John", "Jane", "Doe", "Jane"}

print(nameSet)
# {'Jane', 'Doe', 'John'}
1

Pada contoh di atas, kita mendapatkan satu set item yang ada di

nameSet = {"John", "Jane", "Doe"}

nameSet2 = {"Jade", "Jay"}

nameSet.update(nameSet2)

print(nameSet)
# {'Doe', 'Jay', 'Jane', 'Jade', 'John'}
2 tetapi tidak di
nameSet = {"John", "Jane", "Doe"}

nameSet2 = {"Jade", "Jay"}

nameSet.update(nameSet2)

print(nameSet)
# {'Doe', 'Jay', 'Jane', 'Jade', 'John'}
3

Kami menggunakan operator

nameSet = {"John", "Jane", "Doe"}

nameSet.discard("John")

print(nameSet)
# {'Doe', 'Jane'}
_0 untuk mencapai ini.
nameSet = {"John", "Jane", "Doe"}

nameSet.discard("John")

print(nameSet)
# {'Doe', 'Jane'}
1

Hasil dari operasi tersebut adalah 2 dan 4

Cara Mendapatkan Perbedaan Simetris Himpunan dengan Python

Selisih simetris dari dua himpunan adalah himpunan semua item yang ada di salah satu dari dua himpunan tersebut tetapi tidak ada di keduanya

Di bagian terakhir, kita melihat hasil dari item yang hanya ada di satu set tetapi tidak di set lainnya. Perbedaan simetris adalah hasil item yang ada di setiap set tetapi tidak di keduanya

nameSet = {"John", "Jane", "Doe", "Jane"}

print(nameSet)
# {'Jane', 'Doe', 'John'}
2

Kami menggunakan operator

nameSet = {"John", "Jane", "Doe"}

nameSet.discard("John")

print(nameSet)
# {'Doe', 'Jane'}
_2 untuk mendapatkan perbedaan simetris dari dua himpunan.
nameSet = {"John", "Jane", "Doe"}

nameSet.discard("John")

print(nameSet)
# {'Doe', 'Jane'}
3

Hasilnya adalah 1, 2, 4, 7. Masing-masing item ini tidak muncul di kedua set

Ringkasan

Pada artikel ini, kita berbicara tentang set dan cara membuatnya dengan Python

Set tidak mengizinkan item duplikat, tidak diurutkan, dan item yang disimpan di dalamnya tidak dapat dimodifikasi

Kami juga melihat cara mengakses, menambah, dan menghapus item dalam set menggunakan metode berbeda

Terakhir, kami berbicara tentang kapan menggunakan set di Python. Kami melihat beberapa aplikasi set di Python dan penggunaannya dalam operasi matematika

Selamat mengkode

IKLAN

IKLAN

IKLAN

IKLAN

IKLAN

IKLAN

IKLAN


Persimpangan python dari dua daftar tanpa duplikat
Ihechikara Vincent Abba

Biografi penulis ini dapat ditemukan di artikelnya


Jika Anda membaca sejauh ini, tweet ke penulis untuk menunjukkan bahwa Anda peduli. Tweet terima kasih

Belajar kode secara gratis. Kurikulum open source freeCodeCamp telah membantu lebih dari 40.000 orang mendapatkan pekerjaan sebagai pengembang. Memulai

Bagaimana Anda menggabungkan dua daftar tanpa duplikat di Python?

Untuk menggabungkan dua daftar dan menghapus duplikatnya. .
Gunakan daftar. copy() metode untuk membuat salinan dari daftar pertama
Gunakan ekspresi generator untuk mengulangi daftar kedua
Periksa apakah setiap item tidak ada dalam daftar yang disalin
Gunakan daftar. extend() metode untuk menggabungkan dua daftar

Bagaimana cara menggabungkan dua daftar tanpa duplikat?

Di Excel, Anda dapat menggabungkan dua daftar tanpa menduplikasi nilai apa pun dengan menggunakan fitur Hapus Duplikat .

Bagaimana Anda menemukan persimpangan dua daftar dengan Python?

Untuk melakukan persimpangan dua daftar di python, kita hanya perlu membuat daftar keluaran yang harus berisi elemen yang ada di kedua daftar masukan. For instance, if we have list1=[1,2,3,4,5,6] and list2=[2,4,6,8,10,12] , the intersection of list1 and list2 will be [2,4,6] .

Bagaimana Anda memperluas daftar tanpa duplikat di Python?

Cara Mudah Menghapus Duplikat dari Daftar Python (2023) .
Menggunakan kata kunci del. Kami menggunakan kata kunci del untuk menghapus objek dari daftar dengan posisi indeksnya. .
Menggunakan for-loop. Kami menggunakan for-loop untuk mengulangi iterable. misalnya, Daftar Python. .
Menggunakan set. .
Menggunakan dikt. .
Menggunakan Counter dan FreqDist. .
Menggunakan pd