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

แปลงรายการทูเพิลเป็นรายการใน Python


เราอาจเจอรายการที่มีองค์ประกอบเป็นทูเพิล แต่สำหรับการประมวลผลข้อมูลเพิ่มเติม เราอาจต้องแปลง tuples เป็นองค์ประกอบปกติของรายการ ในบทความนี้เราจะเห็นแนวทางในการบรรลุเป้าหมายนี้

ด้วยความเข้าใจรายการ

ในแนวทางนี้ เราออกแบบการซ้อนสำหรับลูปเพื่อวนซ้ำผ่านแต่ละทูเพิลและสร้างรายการองค์ประกอบขั้นสุดท้าย

ตัวอย่าง

listA = [('Mon', 3), ('Wed', 4), ('Fri', 7, 'pm')]
# Given list
print("Given list : \n", listA)
res = [item for t in listA for item in t]
# Result
print("Final list: \n",res)

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

Given list :
[('Mon', 3), ('Wed', 4), ('Fri', 7, 'pm')]
Final list:
['Mon', 3, 'Wed', 4, 'Fri', 7, 'pm']

ด้วย itertools

เรายังสามารถใช้เมธอด itertools.chain ร่วมกับตัวดำเนินการ * ซึ่งจะดึงข้อมูลแต่ละองค์ประกอบในรายการ tuples แล้วรวมเข้าด้วยกันเป็นชุดขององค์ประกอบสำหรับรายการ

ตัวอย่าง

import itertools
listA = [('Mon', 3), ('Wed', 4), ('Fri', 7, 'pm')]
# Given list
print("Given list : \n", listA)
res = list(itertools.chain(*listA))
# Result
print("Final list: \n",res)

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

Given list :
[('Mon', 3), ('Wed', 4), ('Fri', 7, 'pm')]
Final list:
['Mon', 3, 'Wed', 4, 'Fri', 7, 'pm']

ด้วยการลดและเชื่อมต่อ

ฟังก์ชัน reduce ที่ใช้ในการปรับใช้ฟังก์ชัน concat กับองค์ประกอบรายการแต่ละรายการ ซึ่งสุดท้ายแล้วจะสร้างรายการองค์ประกอบทั้งหมดจากรายการดั้งเดิม

ตัวอย่าง

import operator
from functools import reduce
listA = [('Mon', 3), ('Wed', 4), ('Fri', 7, 'pm')]
# Given list
print("Given list : \n", listA)
res = (list(reduce(operator.concat, listA)))
# Result
print("Final list: \n",res)

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

Given list :
[('Mon', 3), ('Wed', 4), ('Fri', 7, 'pm')]
Final list:
['Mon', 3, 'Wed', 4, 'Fri', 7, 'pm']