เราอาจเจอรายการที่มีองค์ประกอบเป็นทูเพิล แต่สำหรับการประมวลผลข้อมูลเพิ่มเติม เราอาจต้องแปลง 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']