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

Python Zip:คำแนะนำทีละขั้นตอน

ฟังก์ชัน Python zip() ยอมรับรายการที่ทำซ้ำได้และรวมเป็น tuple เดียว ค่าผลลัพธ์เป็นอ็อบเจ็กต์ zip ที่เก็บคู่ของ iterables คุณสามารถส่งรายการ ทูเพิล ชุด หรือพจนานุกรมผ่านฟังก์ชัน zip()


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

ในบทช่วยสอนนี้ เราจะพูดถึงพื้นฐานของ Python zip() นอกจากนี้เรายังจะหารือเกี่ยวกับวิธีการวนซ้ำของไฟล์ zip และวิธีเปิดเครื่องรูดวัตถุที่บีบอัด

ตัวทบทวน Python Iteration

ใน Python เราใช้คำว่า i เท เพื่ออธิบายเวลาที่โปรแกรมทำงานผ่านรายการ ตัวอย่างเช่น สมมติว่าคุณมี สำหรับ วงรอบที่พิมพ์ชื่อทุกสาขาที่บริษัทดำเนินการ เราจะบอกว่าโปรแกรมของเรากำลัง วนซ้ำ ผ่านรายชื่อ

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

ฟังก์ชัน zip ของ Python

ฟังก์ชัน zip() รวมเนื้อหาของ iterables สองรายการขึ้นไป zip() ส่งคืนวัตถุ zip นี่คือตัววนซ้ำของทูเพิลที่ค่าทั้งหมดที่คุณส่งผ่านเมื่ออาร์กิวเมนต์ถูกจัดเก็บเป็นคู่

zip() . ของ Python ฟังก์ชันใช้ iterable เช่น list, tuple, set หรือ dictionary เป็นอาร์กิวเมนต์ ฟังก์ชันจะสร้างรายการของทูเพิลที่มีองค์ประกอบจากการวนซ้ำแต่ละรายการที่คุณส่งผ่านไปยังฟังก์ชัน

ไวยากรณ์สำหรับฟังก์ชัน zip() มีดังนี้:

81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้

ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก

zip(iterable1, iterable2, ...)

คุณสามารถรวม iterables ได้มากเท่าที่คุณต้องการ คุณต้องระบุ iterables ที่คุณต้องการรวมเป็นอาร์กิวเมนต์ของฟังก์ชัน zip()

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

ตัวอย่าง zip Python

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

เราสามารถใช้ zip() ฟังก์ชั่นเพื่อรวมสองรายการของเรา นี่คือตัวอย่างโปรแกรมที่จะรวมข้อมูลนี้:

employee_numbers = [2, 9, 18, 28]
employee_names = ["Candice", "Ava", "Andrew", "Lucas"]

zipped_values = zip(employee_names, employee_numbers)
zipped_list = list(zipped_values)

print(zipped_list)

ฟังก์ชัน zip ของเราคืนค่าดังต่อไปนี้:

[('Candice', 2), ('Ava', 9), ('Andrew', 18), ('Lucas', 28)]

โปรแกรมของเราได้สร้างอาร์เรย์ของรายการทูเพิล ทูเพิลแต่ละตัวมีชื่อพนักงานและหมายเลขพนักงานที่เกี่ยวข้อง

ในสองบรรทัดแรกของรหัสของเรา เราประกาศตัวแปรที่เก็บหมายเลขพนักงานและชื่อพนักงานของเรา

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

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

เราสามารถบอกได้ว่า zipped_values . ของเรา เป็น zip() โดยเพิ่มรหัสต่อไปนี้ในโปรแกรมด้านบนของเรา:

print(type(zipped_values))

รหัสของเราส่งคืนคลาส zip ต่อไปนี้:

<class 'zip'>

ในตัวอย่างข้างต้น เราซิปสองรายการเข้าด้วยกัน อย่างไรก็ตาม ถ้าเรามีมากกว่าที่เราต้องการซิป เราก็สามารถทำได้ การเปลี่ยนแปลงอย่างเดียวที่เราจะทำคือส่งรายการอื่นไปยัง zip() . ของเรา ฟังก์ชัน

วนซ้ำบน Iterables โดยใช้ zip ใน Python

ฟังก์ชัน zip() ส่งกลับตัววนซ้ำ ซึ่งหมายความว่าเราสามารถดูเนื้อหาของแต่ละรายการซิปได้

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

ลองใช้ฟังก์ชัน zip() เพื่อวนซ้ำทั้งรายการ Employee_numbers และ Employee_names:

employee_numbers = [2, 9, 18, 28]
employee_names = ["Candice", "Ava", "Andrew", "Lucas"]

for name, number in zip(employee_names, employee_numbers):
	print(name, number)

รหัสของเราส่งคืนดังต่อไปนี้:

Candice 2
Ava 9
Andrew 18
Lucas 28

โปรแกรมของเราทำซ้ำผ่านรายการสิ่งอันดับที่ zip() ส่งกลับและแบ่งออกเป็นสองค่า:ชื่อและตัวเลข

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

คลายซิปค่าใน Python

ในโค้ดของเรา เราได้ซิปข้อมูลประเภทต่างๆ แต่เราจะกู้คืนข้อมูลเป็นแบบฟอร์มก่อนหน้าได้อย่างไร หากคุณมีรายการ tuples หรือค่า zip ที่คุณต้องการแบ่ง คุณสามารถใช้ zip() ตัวดำเนินการเปิดออกของฟังก์ชัน นี่คือเครื่องหมายดอกจัน * ใช้ร่วมกับ zip() ฟังก์ชัน

นี่คือตัวอย่างของ zip() ตัวดำเนินการเปิดกล่องในการดำเนินการ:

employees_zipped = [('Candice', 2), ('Ava', 9), ('Andrew', 18), ('Lucas', 28)]
employee_names, employee_numbers = zip(*employees_zipped)

print(employee_names)
print(employee_numbers)

รหัสของเราส่งคืนผลลัพธ์ต่อไปนี้:

('Candice', 'Ava', 'Andrew', 'Lucas')
(2, 9, 18, 28)

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

ฟังก์ชัน unzip เป็นฟังก์ชัน zip ที่ใช้ employees_zipped . ของเรา ตัวแปรแตกไฟล์ zip โดยใช้ตัวดำเนินการคลายไฟล์ * . ในตัวอย่างข้างต้น เราพิมพ์ตัวแปรใหม่สองตัวแปรที่มีชื่อพนักงานและหมายเลขพนักงานของเรา

บทสรุป

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

เราได้พูดคุยถึงวิธีการใช้ zip() ฟังก์ชั่นที่มีศูนย์หรือหนึ่งอินพุต คุณสามารถใช้ zip() เพื่อวนซ้ำ iterables และคุณสามารถเปิดเครื่องรูดข้อมูลที่คุณได้ซิปแล้ว ตอนนี้คุณกำลังจะเป็นผู้เชี่ยวชาญของ Python zip() ฟังก์ชัน

อ่านคู่มือ How to Code ใน Python สำหรับเคล็ดลับและคำแนะนำเพิ่มเติมเกี่ยวกับการเรียนรู้ภาษาการพัฒนาซอฟต์แวร์ Python