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

โปรแกรมลบรายการซ้ำในลิสต์ใน Python

สมมติว่าเรามีรายการตัวเลขชื่อ nums เราต้องลบตัวเลขที่ปรากฏหลายครั้ง (เก็บเฉพาะตัวที่ปรากฏครั้งเดียว) และรักษาลำดับการปรากฏเดิม

ตัวอย่าง: nums = [2, 4, 6, 1, 4, 6, 9] ผลลัพธ์คือ [2, 1, 9] เพราะเฉพาะตัวเหล่านี้ปรากฏครั้งเดียว

ขั้นตอนการแก้ปัญหา

  1. สร้างแผนที่ dict ว่าง
  2. สำหรับแต่ละ i ใน nums:
    • ถ้า i ไม่อยู่ใน dict: dict[i] = 0
    • dict[i] += 1
  3. คืนค่าลิสต์ของ e ใน nums ที่ dict[e] == 1

ตัวอย่างโค้ด Python

class Solution:
    def solve(self, nums):
        freq = {}
        for i in nums:
            if i not in freq:
                freq[i] = 0
            freq[i] += 1
        return [k for k, v in freq.items() if v == 1]

ob = Solution()
nums = [2, 4, 6, 1, 4, 6, 9]
print(ob.solve(nums))  # Output: [2, 1, 9]

อินพุต / เอาต์พุต

Input: [2, 4, 6, 1, 4, 6, 9]

Output: [2, 1, 9]