วิธีลบรายการที่ซ้ำกันออกจากรายการใน 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()
วิธีการที่จะให้องค์ประกอบเฉพาะจากรายการที่กำหนดแก่เรา - การรวมกันของความเข้าใจรายการและการแจงนับใช้เพื่อลบองค์ประกอบที่ซ้ำกันออกจากรายการ แจงนับส่งกลับวัตถุที่มีตัวนับไปยังแต่ละองค์ประกอบในรายการ