Automatically translated.View original post

🐍 Daily Python Problem: Find a Simple Repeat 💖

Today we meet the Daily Python Problem: find a duplicate! ✨

The problem is to write the find _ common _ elements function (list1, list2) that will be returned as a new list that only appears on both lists.

There are three ways to write the code:

1. Basic (Loop): This method is easy and straightforward for beginners.

2.Pythonic (Use List Comprehension): Short, concise, popular for Python writers!

3. Pro (Use Set): This method is the fastest (especially with big lists) because it uses the Set feature to find the Intersection (duplicate part) with a sign & then convert it back to list!

Let's take a few examples:

• Input: find _ common _ elements ([1, 2, 3, 4], [3, 4, 5, 6])

• Output: [3, 4]

Try to practice writing together. Finding the duplicate part is used very often! 👩‍💻

Keep going. 🥰

# python # programmer # data aanalyst # ai # learnonlemon8

2025/11/9 Edited to

... Read moreถ้าใครกำลังหา “ตัวอย่าง Python” หรือ “python ตัวอย่าง” แบบเอาไปใช้ได้จริง โจทย์หาตัวซ้ำระหว่าง 2 list คือหนึ่งในแพตเทิร์นที่เจอบ่อยมาก ทั้งงาน data, งานเขียนสคริปต์, หรือทำแบบฝึกหัดสัมภาษณ์ค่ะ ต่อไปนี้เป็นตัวอย่างเพิ่มเติมที่ช่วยให้ใช้งานได้ครอบคลุมขึ้น (จากที่เรามี Loop / List Comprehension / Set แล้ว) 1) เคสที่มี “ตัวซ้ำซ้อน” ภายใน list เดียวกัน บางที list1 อาจมีเลข 3 ซ้ำหลายครั้ง แต่เราอยากได้ผลลัพธ์แบบไม่ซ้ำ (unique) หรืออยากคงจำนวนซ้ำไว้ก็ได้ - แบบเอา unique (เหมาะกับใช้ set): ผลลัพธ์จะเป็นสมาชิกที่ซ้ำกันแบบไม่ซ้ำซ้อน เช่น [3, 4] - แบบคงลำดับและคงจำนวนที่ซ้ำ (เหมาะกับ loop): ถ้า list1 = [1,3,3,4] และ list2 = [3,4] ผลลัพธ์อาจได้ [3,3,4] (ขึ้นกับกติกาที่เราต้องการ) ทริคคือ “กำหนด requirement ก่อน” ว่าต้องการ unique หรือ preserve duplicates 2) เคสที่ต้อง “รักษาลำดับเดิม” ของ list1 Set จะเร็วมาก แต่ไม่รับประกันลำดับ (แม้เวอร์ชันใหม่ๆ จะดูเหมือนเรียงได้บ้างในบางกรณี แต่ไม่ควรพึ่งพา) ถ้าอยากได้ลำดับตาม list1 แนะนำแนวนี้: - สร้าง set ของ list2 ไว้เช็คเร็วๆ - วน list1 แล้วเช็คว่า item อยู่ใน set2 ไหม แนวนี้ได้ทั้งความเร็วและรักษาลำดับ 3) เคส list เป็น “ข้อความ” หรือ “คำ” จาก OCR ก็มีตัวอย่างว่าหาได้ทั้งตัวเลขและข้อความ เช่น list1 = ["apple", "banana", "kiwi"] list2 = ["kiwi", "orange", "banana"] ผลลัพธ์ควรได้ ["banana", "kiwi"] (ถ้ารักษาลำดับ list1) 4) โบนัส: “สระทั้งหมด” ในภาษาไทย (เชื่อมกับคีย์เวิร์ดที่คนค้นหา) ถ้าโจทย์ของคุณเกี่ยวกับการหาสระในข้อความ สามารถใช้แนวคิดเดียวกันได้เลย เช่นเตรียมลิสต์/เซ็ตของสระ แล้วเช็คว่าตัวอักษรไหนอยู่ในกลุ่มสระ ตัวอย่างชุดสระที่คนมักใช้ (ปรับเพิ่มได้ตามงาน): สระ = "ะาิีึืุูเแโใไๅำ" แล้ววนอ่านทีละตัวอักษรในข้อความ เพื่อดึงเฉพาะตัวที่อยู่ในสระ (เหมือนการหา common elements ระหว่าง “ตัวอักษรในข้อความ” กับ “ชุดสระ”) 5) เลือกวิธีไหนดี? - ข้อมูลน้อย/อยากอ่านง่าย: Loop หรือ List Comprehension - ข้อมูลเยอะ/เน้นเร็ว: Set intersection (&) หรือใช้ set ช่วยเช็คสมาชิก - ต้องรักษาลำดับ: Loop + set ของอีกฝั่ง ลองปรับโจทย์ find_common_elements ให้รองรับเคสพวกนี้ จะได้เป็น “ตัวอย่าง python” ที่ใช้งานจริงมากขึ้น และเอาไปต่อยอดกับโจทย์แนวข้อความ/สระทั้งหมดได้ด้วยค่ะ