เมื่อต้องการแปลง tuple เป็น list โดยแทรก string ที่กำหนด (เช่น "Hi") หลังสมาชิกแต่ละตัว สามารถใช้ list comprehension แบบ nested
โค้ดตัวอย่าง
my_tup = (56, 78, 91, 32, 45, 11, 23)
print("The tuple is:")
print(my_tup)
K = "Hi"
my_result = [elem for sub in my_tup for elem in (sub, K)]
print("The tuple after conversion with K is:")
print(my_result)
ผลลัพธ์
The tuple is: (56, 78, 91, 32, 45, 11, 23) The tuple after conversion with K is: [56, 'Hi', 78, 'Hi', 91, 'Hi', 32, 'Hi', 45, 'Hi', 11, 'Hi', 23, 'Hi']
คำอธิบาย
กำหนด tuple และ string K
List comprehension:
[elem for sub in my_tup for elem in (sub, K)]- วนแต่ละ sub ใน my_tup (แต่ละตัวเลข)
- สร้าง tuple ชั่วคราว
(sub, K)แล้ววน elem ใน tuple นั้น - ผลคือลำดับ: sub, K, sub, K, ...
วิธีอื่นที่อ่านง่ายกว่า:
my_result = []
for item in my_tup:
my_result.append(item)
my_result.append(K)
# หรือ
import itertools
my_result = list(itertools.chain.from_iterable((item, K) for item in my_tup))