Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python Dictionary Comprehension


ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีใช้การเข้าใจพจนานุกรมใน Python หากคุณคุ้นเคยกับการเข้าใจรายการอยู่แล้ว ก็จะใช้เวลาไม่นานในการเรียนรู้ความเข้าใจในพจนานุกรม

เราต้องการคีย์:คู่ค่าเพื่อสร้างพจนานุกรม จะรับคู่คีย์-ค่าเหล่านี้โดยใช้ความเข้าใจในพจนานุกรมได้อย่างไร ดูคำชี้แจงทั่วไปของความเข้าใจในพจนานุกรม

{key: value for ___ in iterable}

เราจำเป็นต้องกรอกข้อความข้างต้นเพื่อทำความเข้าใจพจนานุกรมให้สมบูรณ์ มีหลายวิธีในการกรอก มาดูวิธีทั่วไปกันบ้าง

มาดูวิธีสร้างตัวเลขเป็นคีย์และกำลังสองเป็นค่าภายในช่วง 10 กัน ผลลัพธ์ควรมีลักษณะดังนี้ {0:0, 1:1, 2:4, 3:9, 4:16, 5:25, 6:36, 7:49, 8:64, 9:81}. ดูโค้ดด้านล่าง

ตัวอย่าง

# creating the dictionary
squares = {i: i ** 2 for i in range(10)}
# printing the dictionary
print(squares)

ผลลัพธ์

หากคุณเรียกใช้โค้ดด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้

{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}

จะสร้างพจนานุกรมจากสองรายการโดยใช้ความเข้าใจนี้ได้อย่างไร? เราสามารถใช้วิธี zip เพื่อรับค่าขนานจากสองรายการ มาดูวิธีการสร้างพจนานุกรมจาก [1, 2, 3, 4, 5] และ [a, b, c, d, e].

ตัวอย่าง

# keys
keys = ['a', 'b', 'c', 'd', 'e']
# values
values = [1, 2, 3, 4, 5]
# creating a dict from the above lists
dictionary = {key: value for (key, value) in zip(keys, values)}
# printing the dictionary
print(dictionary)

ผลลัพธ์

หากคุณรันโปรแกรมข้างต้น คุณจะได้ผลลัพธ์ดังต่อไปนี้

{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}

นอกจากนี้เรายังสามารถสร้างพจนานุกรมจากรายการเดียวที่มีดัชนีเป็นคีย์โดยใช้วิธีการแจกแจง มาดูวิธีทำกันเลย

ตัวอย่าง

# values
values = ['a', 'b', 'c', 'd', 'e']
# generating a dict using enumerate
dictionary = {key: value for (key, value) in enumerate(values)}
# printing the dict
print(dictionary)

ผลลัพธ์

หากคุณเรียกใช้โค้ดด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้

{0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e'}

บทสรุป

คุณสามารถใช้ความเข้าใจพจนานุกรมตามความต้องการของคุณ วิธีที่ดีที่สุดในการเรียนรู้ความเข้าใจในพจนานุกรมหลักคือการใช้เมื่อมีโอกาส หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น