กำหนดลิสต์ที่สมาชิกเป็น tuples ของตัวเลข ต้องการดึงหลักตัวเลขที่ไม่ซ้ำจากทุก tuple
ใช้ re และ set
ใช้ regex ลบอักขระไม่ต้องการ แล้วแปลงเป็น set เพื่อเอาค่าที่ไม่ซ้ำ
ตัวอย่าง
import re
listA = [(21, 3), (13, 4), (15, 7), (8, 11)]
print("Given list : \n", listA)
temp = re.sub(r'[\[\]\(\), ]', '', str(listA))
res = [int(i) for i in set(temp)]
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.chain และ set
chain.from_iterable รวมสมาชิก แล้วแปลงแต่ละตัวเป็นสตริง แล้วเพิ่มใน set
ตัวอย่าง
from itertools import chain
listA = [(21, 3), (13, 4), (15, 7), (8, 11)]
print("Given list : \n", listA)
temp = map(lambda x: str(x), chain.from_iterable(listA))
res = set()
for i in temp:
for elem in i:
res.add(elem)
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'}