Python มีความสามารถในการจัดการข้อมูลที่หลากหลาย เรามีสถานการณ์ที่เราได้รับรายการซึ่งมีองค์ประกอบที่เป็นคู่ของตัวเลขเป็นทูเพิล ในบทความนี้ เราจะมาดูวิธีการแยกตัวเลขที่ไม่ซ้ำกันออกจากองค์ประกอบของรายการซึ่งเป็นทูเพิล
พร้อมรีและเซ็ต
เราสามารถใช้ Regular expression Module และฟังก์ชั่นที่เรียกว่า sub ใช้เพื่อแทนที่สตริงที่ตรงกับนิพจน์ทั่วไปแทนที่จะเป็นการจับคู่ที่สมบูรณ์แบบ ดังนั้นเราจึงออกแบบนิพจน์ทั่วไปเพื่อแปลง tuples เป็นสตริงปกติ จากนั้นจึงใช้ฟังก์ชัน set เพื่อรับตัวเลขที่ไม่ซ้ำ
ตัวอย่าง
import re listA = [(21, 3), (13, 4), (15, 7),(8,11)] # Given list print("Given list : \n", listA) temp = re.sub(r'[\[\]\(\), ]', '', str(listA)) # Using set res = [int(i) for i in set(temp)] # Result print("List of digits: \n",res)
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
Given list : [(21, 3), (13, 4), (15, 7), (8, 11)] List of digits: [1, 3, 2, 5, 4, 7, 8])
มีโซ่และชุด
โมดูล itertools มีวิธีลูกโซ่ที่เราสามารถใช้เพื่อรับองค์ประกอบจากรายการ จากนั้นสร้างชุดว่างและเพิ่มองค์ประกอบไปยังชุดนั้นทีละชุด
ตัวอย่าง
from itertools import chain listA = [(21, 3), (13, 4), (15, 7),(8,11)] # Given list print("Given list : \n", listA) temp = map(lambda x: str(x), chain.from_iterable(listA)) # Using set and add res = set() for i in temp: for elem in i: res.add(elem) # Result print("set of digits: \n",res)
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
Given list : [(21, 3), (13, 4), (15, 7), (8, 11)] set of digits: ['1', '3', '2', '5', '4', '7', '8'])