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