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

แปลงลิสต์ของ tuples เป็นหลักตัวเลขที่ไม่ซ้ำใน Python

กำหนดลิสต์ที่สมาชิกเป็น 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'}