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

Python zip() ฟังก์ชัน


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

ตัวอย่าง

help(zip)

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

ผลลัพธ์

Help on class zip in module builtins:
class zip(object)
   | zip(iter1 [,iter2 [...]]) --> zip object
   |
   | Return a zip object whose .__next__() method returns a tuple where
   | the i-th element comes from the i-th iterable argument. The .__next__()
   | method continues until the shortest iterable in the argument sequence
   | is exhausted and then it raises StopIteration.
   |
   | Methods defined here:
   |
   | __getattribute__(self, name, /)
   | Return getattr(self, name).
   |
   | __iter__(self, /)
   | Implement iter(self).
   |
   | __new__(*args, **kwargs) from builtins.type
   | Create and return a new object. See help(type) for accurate signature.
   |
   | __next__(self, /)
   | Implement next(self).
   |
   | __reduce__(...)
   | Return state information for pickling.

มาดูตัวอย่างง่ายๆ ว่ามันทำงานอย่างไร?

ตัวอย่าง

## initializing two lists
names = ['Harry', 'Emma', 'John']
ages = [19, 20, 18]
## zipping both
## zip() will return pairs of tuples with corresponding elements from both lists
print(list(zip(names, ages)))

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

ผลลัพธ์

[('Harry', 19), ('Emma', 20), ('John', 18)]

เรายังคลายซิปองค์ประกอบจากออบเจ็กต์ที่ซิปได้ เราต้องส่งวัตถุที่มี * นำหน้าไปยัง zip() การทำงาน. มาดูกันค่ะ

ตัวอย่าง

## initializing two lists
names = ['Harry', 'Emma', 'John']
ages = [19, 20, 18]
## zipping both
## zip() will return pairs of tuples with corresponding elements from both lists
zipped = list(zip(names, ages))
## unzipping
new_names, new_ages = zip(*zipped)
## checking new names and ages
print(new_names)
print(new_ages)

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

('Harry', 'Emma', 'John')
(19, 20, 18)

การใช้งานทั่วไปของ zip()

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

ตัวอย่าง

## initializing two lists
names = ['Harry', 'Emma', 'John']
ages = [19, 20, 18]
## printing names and ages correspondingly using zip()
for name, age in zip(names, ages):
print(f"{name}'s age is {age}")

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

ผลลัพธ์

Harry's age is 19
Emma's age is 20
John's age is 18