วิธีลบรายการที่ซ้ำกันออกจากรายการใน Python

Python ลบรายการที่ซ้ำกันออกจากรายการ

รายการคือคอนเทนเนอร์ที่ประกอบด้วยข้อมูลที่แตกต่างกัน Python วัตถุ ซึ่งอาจเป็นจำนวนเต็ม คำ ค่า ฯลฯ ซึ่งเทียบเท่ากับอาร์เรย์ในภาษาการเขียนโปรแกรมอื่นๆ

ต่อไปนี้จะกล่าวถึงวิธีต่างๆ ที่เราสามารถลบรายการที่ซ้ำกันออกจากรายการที่กำหนดได้ Python.

วิธีที่ 1) ลบรายการที่ซ้ำกันออกจากรายการโดยใช้ Set

หากต้องการลบรายการที่ซ้ำกันออกจากรายการ คุณสามารถใช้ฟังก์ชันในตัวได้ set()- ความพิเศษของเมธอด set() คือมันส่งคืนองค์ประกอบที่แตกต่างกัน

เรามีรายการ : [1,1,2,3,2,2,4,5,6,2,1]. รายการมีรายการซ้ำจำนวนมากซึ่งเราต้องลบออกและส่งคืนเฉพาะองค์ประกอบที่แตกต่างกันเท่านั้น รายชื่อมอบให้กับ set() ฟังก์ชั่นในตัว Later รายการสุดท้ายจะแสดงโดยใช้ list() ฟังก์ชันในตัว ดังแสดงในตัวอย่างด้านล่าง


ผลลัพธ์ที่เราได้รับคือองค์ประกอบที่แตกต่างกัน โดยที่องค์ประกอบที่ซ้ำกันทั้งหมดจะถูกกำจัดออกไป
ตัวอย่าง

my_list = [1,1,2,3,2,2,4,5,6,2,1]
my_final_list = set(my_list)
print(list(my_final_list))

Output:

[1, 2, 3, 4, 5, 6]

วิธีที่ 2) การใช้รายการชั่วคราว

เพื่อลบรายการที่ซ้ำกันออกจากที่กำหนด listคุณสามารถใช้รายการชั่วคราวที่ว่างเปล่าได้ ในขั้นแรก คุณจะต้องวนซ้ำรายการที่มีรายการซ้ำกัน และเพิ่มรายการที่ไม่ซ้ำลงในรายการชั่วคราว Later รายการชั่วคราวถูกกำหนดให้กับรายการหลัก

ตัวอย่าง
นี่คือตัวอย่างการทำงานโดยใช้รายการชั่วคราว

my_list = [1, 2, 3, 1, 2, 4, 5, 4 ,6, 2]
print("List Before ", my_list)
temp_list = []

for i in my_list:
    if i not in temp_list:
        temp_list.append(i)

my_list = temp_list

print("List After removing duplicates ", my_list)

Output:

List Before  [1, 2, 3, 1, 2, 4, 5, 4, 6, 2]
List After removing duplicates  [1, 2, 3, 4, 5, 6]

วิธีที่ 3) การใช้ Dict

เราสามารถลบรายการที่ซ้ำกันออกจากรายการที่กำหนดได้โดยการนำเข้า OrderedDict จากคอลเลกชัน มีให้ตั้งแต่ python2.7 เป็นต้นไป OrderedDict จะดูแลส่งคืนองค์ประกอบที่แตกต่างกันให้คุณตามลำดับที่มีคีย์อยู่

ให้เราใช้รายการและใช้ fromkeys() วิธีการที่มีอยู่ใน OrderedDict เพื่อรับองค์ประกอบเฉพาะจากรายการ

เพื่อใช้ประโยชน์จาก OrderedDict.fromkey() วิธีการ คุณต้องนำเข้า OrderedDict จากคอลเลกชัน ดังที่แสดงด้านล่าง:

from collections import OrderedDict

นี่คือตัวอย่างในการลบรายการที่ซ้ำกันโดยใช้ OrderedDict.fromkeys() วิธี

ตัวอย่าง

from collections import OrderedDict

my_list = ['a','x','a','y','a','b','b','c']

my_final_list = OrderedDict.fromkeys(my_list)

print(list(my_final_list))

Output:

['a', 'x', 'y', 'b', 'c']

ตั้งแต่ Python 3.5+ ขึ้นไป เราก็ใช้แบบปกติได้ dict.fromkeys() เพื่อรับองค์ประกอบที่แตกต่างจากรายการ ที่ dict.fromkeys() วิธีการส่งคืนคีย์ที่ไม่ซ้ำใครและช่วยกำจัดค่าที่ซ้ำกัน

ตัวอย่างที่แสดงให้เห็นการทำงานของ dict.fromkeys() ในรายการที่จะมอบไอเทมพิเศษมีดังนี้:

ตัวอย่าง

my_list = ['a','x','a','y','a','b','b','c']
my_final_list = dict.fromkeys(my_list)
print(list(my_final_list))

Output:

['a', 'x', 'y', 'b', 'c']

วิธีที่ 4) การใช้ for-loop

การใช้ สำหรับห่วงเราจะสำรวจรายการเพื่อลบรายการที่ซ้ำกัน

ขั้นแรกให้เริ่มต้นอาร์เรย์ให้ว่างเปล่าเช่น myFinallist = []. ภายใน for-loop ให้เพิ่มตรวจสอบว่ารายการในรายการมีอยู่ในอาร์เรย์หรือไม่ myFinallist- หากไม่มีรายการดังกล่าว ให้เพิ่มรายการลงในอาร์เรย์ myFinallist โดยใช้ append() วิธี

ดังนั้นเมื่อใดก็ตามที่พบรายการที่ซ้ำกัน รายการนั้นก็จะมีอยู่ในอาร์เรย์ myFinallist แล้ว และจะไม่ถูกแทรก ตอนนี้ให้เราตรวจสอบสิ่งเดียวกันในตัวอย่างด้านล่าง:

ตัวอย่าง

my_list = [1,2,2,3,1,4,5,1,2,6]
myFinallist = []
for i in my_list:
    if i not in myFinallist:
myFinallist.append(i)
print(list(myFinallist))

Output:

[1, 2, 3, 4, 5, 6]

วิธีที่ 5) การใช้รายการความเข้าใจ

รายการความเข้าใจคือ Python ฟังก์ชันที่ใช้สำหรับสร้างลำดับใหม่ (เช่น รายการ พจนานุกรม ฯลฯ) โดยใช้ลำดับที่สร้างขึ้นแล้ว สิ่งนี้ช่วยให้คุณลดการวนซ้ำที่ยาวขึ้นและทำให้โค้ดของคุณอ่านและบำรุงรักษาได้ง่ายขึ้น

ให้เราใช้ความเข้าใจรายการเพื่อลบรายการที่ซ้ำกันออกจากรายการที่กำหนด

ตัวอย่าง

my_list = [1,2,2,3,1,4,5,1,2,6]
my_finallist = []
[my_finallist.append(n) for n in my_list if n not in my_finallist] 
print(my_finallist)

Output:

[1, 2, 3, 4, 5, 6]

วิธีที่ 6) การใช้วิธี Numpy Unique()

วิธีการ unique() จากโมดูล Numpy สามารถช่วยให้เราลบรายการที่ซ้ำกันออกจากรายการที่กำหนดได้

หากต้องการทำงานกับโมดูลนำเข้า Numpy อันดับแรก คุณต้องทำตามขั้นตอนเหล่านี้:

ขั้นตอนที่ 1) นำเข้าโมดูล Numpy

import numpy as np

ขั้นตอน 2) ใช้รายการของคุณกับรายการที่ซ้ำกันในวิธีการเฉพาะดังที่แสดงด้านล่าง ผลลัพธ์จะถูกแปลงกลับเป็นรูปแบบรายการโดยใช้ tolist() วิธี

myFinalList = np.unique(my_list).tolist()

ขั้นตอน 3) สุดท้ายให้พิมพ์รายการตามที่แสดงด้านล่าง:

print(myFinalList)

รหัสสุดท้ายพร้อมเอาต์พุตจะเป็นดังนี้:

import numpy as np
my_list = [1,2,2,3,1,4,5,1,2,6]
myFinalList = np.unique(my_list).tolist()
print(myFinalList)

Output:

[1, 2, 3, 4, 5, 6]

วิธีที่ 7) การใช้วิธี Pandas

โมดูล Pandas มี unique() วิธีการที่จะให้องค์ประกอบเฉพาะจากรายการที่กำหนดแก่เรา

หากต้องการทำงานกับโมดูล Pandas คุณต้องทำตามขั้นตอนเหล่านี้:

ขั้นตอน 1) นำเข้าโมดูล Pandas

import pandas as pd

ขั้นตอน 2) ใช้รายการของคุณกับรายการที่ซ้ำกันภายใน unique() วิธีการดังแสดงด้านล่าง:

myFinalList = pd.unique(my_list).tolist()

ขั้นตอน 3) พิมพ์รายการตามที่แสดงด้านล่าง:

print(myFinalList)

รหัสสุดท้ายพร้อมเอาต์พุตจะเป็นดังนี้:

import pandas as pd

my_list = [1,2,2,3,1,4,5,1,2,6]
myFinalList = pd.unique(my_list).tolist()
print(myFinalList)

Output:

[1, 2, 3, 4, 5, 6]

วิธีที่ 8) การใช้ enumerate() และรายการความเข้าใจ

นี่คือการรวมกันของรายการความเข้าใจและการแจงนับเพื่อลบองค์ประกอบที่ซ้ำกัน แจงนับส่งกลับวัตถุที่มีตัวนับไปยังแต่ละองค์ประกอบในรายการ ตัวอย่างเช่น (0,1), (1,2) เป็นต้น โดยค่าแรกคือดัชนี และค่าที่สองคือรายการ ว

แต่ละองค์ประกอบจะถูกตรวจสอบว่ามีอยู่ในรายการหรือไม่ และหากมี องค์ประกอบนั้นจะถูกลบออกจากรายการ

ตัวอย่าง

my_list = [1,2,2,3,1,4,5,1,2,6]
my_finallist = [i for j, i in enumerate(my_list) if i not in my_list[:j]] 
print(list(my_finallist))

Output:

[1, 2, 3, 4, 5, 6]

สรุป

  • หากต้องการลบรายการที่ซ้ำกันออกจากรายการ คุณสามารถใช้ฟังก์ชันในตัวได้ set()- ความพิเศษของ set() วิธีการคือส่งคืนองค์ประกอบที่แตกต่างกัน
  • คุณสามารถลบรายการที่ซ้ำกันออกจากรายการที่กำหนดได้โดยการนำเข้า OrderedDictfrom คอลเลกชัน มีให้ตั้งแต่ python2.7 เป็นต้นไป OrderedDictdict ดูแลการส่งคืนองค์ประกอบที่แตกต่างตามลำดับที่มีคีย์อยู่
  • คุณสามารถใช้ for-loop ที่เราจะสำรวจรายการสินค้าเพื่อลบรายการที่ซ้ำกัน
  • วิธีการ unique() จากโมดูล Numpy สามารถช่วยให้เราลบรายการที่ซ้ำกันออกจากรายการที่กำหนดได้
  • โมดูล Pandas มี unique() วิธีการที่จะให้องค์ประกอบเฉพาะจากรายการที่กำหนดแก่เรา
  • การรวมกันของความเข้าใจรายการและการแจงนับใช้เพื่อลบองค์ประกอบที่ซ้ำกันออกจากรายการ แจงนับส่งกลับวัตถุที่มีตัวนับไปยังแต่ละองค์ประกอบในรายการ