ได้ลิสต์ที่สมาชิกเป็น tuples ต้องการแปลงเป็นลิสต์แบน (flat list) ที่รวมสมาชิกทุกตัว
ใช้ List Comprehension
ใช้ nested for loops ใน list comprehension
ตัวอย่าง
listA = [('Mon', 3), ('Wed', 4), ('Fri', 7, 'pm')]
print("Given list : \n", listA)
res = [item for t in listA for item in t]
print("Final list: \n", res)
ผลลัพธ์
Given list : [('Mon', 3), ('Wed', 4), ('Fri', 7, 'pm')]
Final list: ['Mon', 3, 'Wed', 4, 'Fri', 7, 'pm']
ใช้ itertools.chain
itertools.chain(*listA) รวม iterator จากทุก tuple แล้วแปลงเป็นลิสต์
ตัวอย่าง
import itertools
listA = [('Mon', 3), ('Wed', 4), ('Fri', 7, 'pm')]
print("Given list : \n", listA)
res = list(itertools.chain(*listA))
print("Final list: \n", res)
ผลลัพธ์
Given list : [('Mon', 3), ('Wed', 4), ('Fri', 7, 'pm')]
Final list: ['Mon', 3, 'Wed', 4, 'Fri', 7, 'pm']
ใช้ reduce และ operator.concat
reduce(operator.concat, listA) รวม tuples ทั้งหมด
ตัวอย่าง
import operator
from functools import reduce
listA = [('Mon', 3), ('Wed', 4), ('Fri', 7, 'pm')]
print("Given list : \n", listA)
res = list(reduce(operator.concat, listA))
print("Final list: \n", res)
ผลลัพธ์
Given list : [('Mon', 3), ('Wed', 4), ('Fri', 7, 'pm')]
Final list: ['Mon', 3, 'Wed', 4, 'Fri', 7, 'pm']