Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

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

คุณสามารถลบรายการที่ซ้ำกันออกจาก Python ได้โดยใช้ dict.fromkeys() ซึ่งจะสร้างพจนานุกรมที่จะลบค่าที่ซ้ำกัน คุณยังสามารถแปลงรายการเป็นชุดได้ คุณต้องแปลงพจนานุกรมหรือตั้งค่ากลับเป็นรายการเพื่อดูรายการที่มีการลบรายการที่ซ้ำกัน


เมื่อคุณทำงานกับรายการใน Python อาจมีสถานการณ์ที่คุณต้องการลบรายการที่ซ้ำกันออกจากรายการ ตัวอย่างเช่น สมมติว่าคุณเป็นเชฟที่ผสมผสานเมนูเก่าและเมนูใหม่สำหรับร้านอาหารของคุณ คุณอาจต้องการลบรายการที่ซ้ำกันที่เกิดขึ้นจากการรวมสองเมนูนี้เข้าด้วยกัน

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

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

คุณสามารถลบรายการที่ซ้ำกันโดยใช้ชุด Python หรือเมธอด dict.fromkeys()

dict.fromkeys() วิธีการแปลงรายการเป็นพจนานุกรม พจนานุกรมต้องไม่มีค่าที่ซ้ำกัน ดังนั้นพจนานุกรมที่มีค่าเฉพาะจะถูกส่งกลับโดย dict.fromkeys()

ชุดเช่นพจนานุกรมต้องไม่มีค่าที่ซ้ำกัน หากเราแปลงรายการเป็นชุด รายการที่ซ้ำกันทั้งหมดจะถูกลบออก

Python ลบรายการที่ซ้ำกันออกจากรายการ:dict.fromkeys()

พจนานุกรม Python เก็บข้อมูลในโครงสร้างคีย์/ค่า พจนานุกรมจับคู่คีย์กับค่าและสร้างคู่ที่จัดเก็บข้อมูลใน Python

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

81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้

ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก

dict.fromkeys() ตัวอย่าง

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

ไวยากรณ์สำหรับ fromkeys() วิธีการมีดังนี้:

dictionary_name.fromkeys(keys, value)

fromkeys รับสองพารามิเตอร์:คีย์และค่า พารามิเตอร์คีย์คือ iterable ซึ่งระบุคีย์ของพจนานุกรมใหม่ที่คุณต้องการสร้าง พารามิเตอร์ค่าของเราเป็นทางเลือกและเก็บค่าสำหรับคีย์ทั้งหมด เราไม่ต้องการพารามิเตอร์นี้สำหรับตัวอย่างนี้ ดังนั้นเราจะไม่สนใจมัน

สมมุติว่าเราเป็นเชฟที่ผสานเมนูพิซซ่าเก่าและใหม่เข้าเป็นเมนูใหญ่เมนูเดียว เมนูใหม่นี้รวมถึงพิซซ่าใหม่ๆ ที่เราได้ดำเนินการมาหลายเดือนแล้ว แต่เราต้องการเสนอพิซซ่าในเมนูเก่า เราไม่ต้องการให้รายการซ้ำปรากฏบนเมนู เพราะจะทำให้ลูกค้าสับสน

หากต้องการลบรายการซ้ำที่อาจอยู่ในเมนูใหม่ เราสามารถใช้รหัสต่อไปนี้:

new_menu = ['Hawaiian', 'Margherita', 'Mushroom', 'Prosciutto', 'Meat Feast', 'Hawaiian', 'Bacon', 'Black Olive Special', 'Sausage', 'Sausage']

final_new_menu = list(dict.fromkeys(new_menu))

print(final_new_menu)

รหัสของเราลบองค์ประกอบที่ซ้ำกันและส่งคืน:

['Hawaiian', 'Margherita', 'Mushroom', 'Prosciutto', 'Meat Feast', 'Bacon', 'Black Olive Special', 'Sausage']

ในบรรทัดแรก เราประกาศตัวแปร Python ชื่อ new_menu ซึ่งเก็บพิซซ่าทั้งหมดไว้ในเมนูใหม่ โปรดทราบว่ารายการนี้มีค่าที่ซ้ำกัน — ทั้ง ไส้กรอก และ ฮาวาย ปรากฏสองครั้งในรายการ Python

เราใช้ dict.fromkeys() วิธีการสร้างพจนานุกรมจาก new_menu . ของเรา ตัวแปร. ต่อไป เราใช้ list() เพื่อแปลงข้อมูลของเราจากพจนานุกรมเป็นอาร์เรย์ Python หรือรายการ ในบรรทัดสุดท้ายของโค้ด เราพิมพ์รายการที่แก้ไขแล้ว

อย่างที่คุณเห็น โปรแกรมของเราได้ลบค่าที่ซ้ำกันออกจากข้อมูลของเรา และ ไส้กรอก และ ฮาวาย ปรากฏในรายการใหม่ของเราหนึ่งครั้ง

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

Python set object เป็นโครงสร้างข้อมูลที่มีทั้ง unordered และ ไม่ได้จัดทำดัชนี . ตั้งค่าคอลเลกชันร้านค้าของรายการที่ไม่ซ้ำใน Python ชุดไม่สามารถเก็บค่าที่ซ้ำกันต่างจากรายการได้

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

pizzas = ('Margherita', 'Hawaiian', 'Mushroom', 'Meat Feast')

ลบรายการที่ซ้ำกันโดยใช้ชุดตัวอย่าง

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

เรียกได้ว่าเราเป็นเชฟพิซซ่าที่อยากจะผสมผสานทั้งเมนูเก่าและเมนูใหม่เข้าด้วยกัน แต่อาจมีรายการซ้ำกันระหว่างเมนูเหล่านี้ ซึ่งเราจะต้องการลบออกก่อนที่จะสร้างเมนูสุดท้ายของเรา ในการลบรายการที่ซ้ำกันเหล่านี้โดยใช้วิธีตั้งค่า เราสามารถใช้รหัสต่อไปนี้:

new_menu = ['Hawaiian', 'Margherita', 'Mushroom', 'Prosciutto', 'Meat Feast', 'Hawaiian', 'Bacon', 'Black Olive Special', 'Sausage', 'Sausage']

final_new_menu = list(set(new_menu))

print(final_new_menu)

นี่คือรายการของเราหลังจากลบค่าที่ซ้ำกัน:

['Mushroom', 'Black Olive Special', 'Meat Feast', 'Bacon', 'Margherita', 'Sausage', 'Prosciutto', 'Hawaiian']

ในช่วงเริ่มต้นของโปรแกรม เราจะประกาศรายการชื่อ new_menu ซึ่งจัดเก็บพิซซ่าทั้งหมดไว้ในเมนูใหม่

จากนั้น เราประกาศตัวแปรชื่อ final_new_menu ที่เก็บเมนูที่เราแก้ไข ตัวแปรนี้แปลง new_menu ตัวแปรไปยังชุดโดยใช้ set() จากนั้นแปลงชุดกลับเป็นรายการโดยใช้ list() . กระบวนการนี้จะลบค่าที่ซ้ำกันทั้งหมดใน new_menu . ของเรา ตัวแปร

สุดท้าย โปรแกรมของเราจะพิมพ์เมนูใหม่ไปที่คอนโซล องค์ประกอบที่ไม่ซ้ำทั้งหมดจากวัตถุรายการดั้งเดิมปรากฏขึ้น ตอนนี้เรามีรายการพิเศษแล้ว



บทสรุป

การลบรายการที่ซ้ำกันออกจากรายการเป็นการดำเนินการทั่วไปใน Python ไม่มีวิธีการอย่างเป็นทางการที่ควรใช้เพื่อลบรายการที่ซ้ำกันออกจากรายการ แนวทางที่พบบ่อยที่สุดคือการใช้พจนานุกรม fromkeys() ทำงานหรือแปลงข้อมูลของคุณเป็นชุด

ในคู่มือนี้ เราได้พูดถึงวิธีใช้พจนานุกรม fromkeys() ฟังก์ชันและตั้งค่าให้ลบรายการที่ซ้ำกันออกจากรายการใน Python

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการเขียนโปรแกรม Python โปรดอ่านคู่มือ How to Learn Python