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

Comprehensions ใน Python (List, Dict, Set, Generator)

Comprehension เป็นวิธีเขียนโค้ดกระชับสร้าง sequence ใหม่ (list, dict, set, generator) จาก sequence เดิม อาจเกี่ยวข้องกับการแปลงชนิดข้อมูลหลายขั้นตอน

List Comprehension

สร้างลิสต์ใหม่จากการดัดแปลงค่าลิสต์เดิม ตัวอย่างบวก 3 ทุกค่า

โค้ดตัวอย่าง

given_list = [x for x in range(5)]
print(given_list)
new_list = [var + 3 for var in given_list]
print(new_list)

ผลลัพธ์

[0, 1, 2, 3, 4]
[3, 4, 5, 6, 7]

Dictionary Comprehension

สร้าง Dictionary จากลิสต์

โค้ดตัวอย่าง

given_list = [x for x in range(5)]
print(given_list)
new_dict = {var: var + 3 for var in given_list}
print(new_dict)

ผลลัพธ์

[0, 1, 2, 3, 4]
{0: 3, 1: 4, 2: 5, 3: 6, 4: 7}

สร้าง Dictionary จากสองลิสต์ด้วย zip()

โค้ดตัวอย่าง

list1 = [x for x in range(5)]
list2 = ['Mon','Tue','Wed','Thu','Fri']
print(list1)
print(list2)
new_dict = {key: value for (key, value) in zip(list1, list2)}
print(new_dict)

ผลลัพธ์

[0, 1, 2, 3, 4]
['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
{0: 'Mon', 1: 'Tue', 2: 'Wed', 3: 'Thu', 4: 'Fri'}

Set Comprehension

สร้าง Set ใหม่จาก Set หรือ List เดิม

โค้ดตัวอย่าง

given_set = {x for x in range(5)}
print(given_set)
new_set = {var + 3 for var in given_set}
print(new_set)

ผลลัพธ์

{0, 1, 2, 3, 4}
{3, 4, 5, 6, 7}

Generator Comprehension

สร้าง Generator จากลิสต์เดิม ประหยัดหน่วยความจำ เพราะจัดสรรหน่วยความจำเมื่อต้องการไอเท็มเท่านั้น

โค้ดตัวอย่าง

given_list = [x for x in range(5)]
print(given_list)
new_gen = (var + 3 for var in given_list)
for var1 in new_gen:
    print(var1, end=" ")

ผลลัพธ์

[0, 1, 2, 3, 4]
3 4 5 6 7