การเปลี่ยนประเภทคอลเลกชันจากประเภทหนึ่งไปอีกประเภทเป็นความต้องการที่พบบ่อยใน Python ในบทความนี้เราจะดูวิธีสร้างทัพเปิลจากคู่คีย์-ค่าที่อยู่ในพจนานุกรม แต่ละคู่คีย์-ค่าจะกลายเป็นทัพเปิล ดังนั้นลิสต์สุดท้ายคือลิสต์ที่องค์ประกอบเป็นทัพเปิล
ด้วย items()
เราใช้เมธอด items ของพจนานุกรมซึ่งอนุญาตให้เราวนลูปผ่านแต่ละคู่คีย์-ค่า จากนั้นใช้ลูป for เพื่อจับค่าคู่เหล่านั้นเป็นทัพเปิล เราใส่ทัพเปิลทั้งหมดนี้เข้าไปในลิสต์สุดท้าย
ตัวอย่าง
dictA = {'Mon': '2 pm', 'Tue': '1 pm', 'Fri': '3 pm'}
# Using items()
res = [(k, v) for k, v in dictA.items()]
# Result
print(res)
Output
การรันโค้ดข้างต้นให้ผลลัพธ์ดังนี้ -
[('Mon', '2 pm'), ('Tue', '1 pm'), ('Fri', '3 pm')]
ด้วย zip
วิธีอื่นคือใช้ฟังก์ชัน zip ฟังก์ชัน zip จะจับคู่คีย์และค่าเป็นทัพเปิลแล้วเราแปลงผลลัพธ์ทั้งหมดเป็นลิสต์โดยใช้ฟังก์ชัน list
ตัวอย่าง
dictA = {'Mon': '2 pm', 'Tue': '1 pm', 'Fri': '3 pm'}
# Using items()
res = list(zip(dictA.keys(), dictA.values()))
# Result
print(res)
Output
การรันโค้ดข้างต้นให้ผลลัพธ์ดังนี้ -
[('Mon', '2 pm'), ('Tue', '1 pm'), ('Fri', '3 pm')]
ด้วย append
เมธอด append() สามารถเพิ่มผลลัพธ์เข้าไปในลิสต์หลังจากดึงคู่ค่าเพื่อสร้างทัพเปิล เราวนลูป for เพื่อได้ผลลัพธ์สุดท้าย
ตัวอย่าง
dictA = {'Mon': '2 pm', 'Tue': '1 pm', 'Fri': '3 pm'}
# Initialize empty list
res = []
# Append to res
for i in dictA:
tpl = (i, dictA[i])
res.append(tpl)
# Result
print(res)
Output
การรันโค้ดข้างต้นให้ผลลัพธ์ดังนี้ -
[('Mon', '2 pm'), ('Tue', '1 pm'), ('Fri', '3 pm')]