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

แปลงรายการ tuples เป็นตัวเลขใน Python


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'])