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