ยินดีต้อนรับกลับ.
ตอนนี้เรากำลังจะใช้ส่วนที่ดีของหลักสูตรนี้ในการสร้างบางโครงการและใช้โมดูล
Python ในตัวรวมถึงการใช้ไลบรารีของบุคคลที่สามที่เป็นที่นิยมจากดัชนีแพ็คเกจ Python
อย่างไรก็ตาม ฉันต้องการแสดงวิดีโอสั้นๆ เกี่ยวกับโมดูลที่มีประโยชน์ซึ่งโดยส่วนตัวแล้วฉันชอบในโมดูลในตัวที่เรามีจาก
Python
และโมดูลที่มีประโยชน์เหล่านี้บางส่วนทำให้เรามีประเภทข้อมูลมากขึ้นใน Python
จำรายการนี้ไว้ตอนต้นของหลักสูตรที่ฉันพูดถึงประเภทข้อมูลที่มาพร้อมกับ Python
จากนั้นเราได้เรียนรู้เกี่ยวกับชั้นเรียนและวิธีที่เราสามารถสร้างประเภทข้อมูลของเราเอง วัตถุของเราเองใน
Python
แต่เรายังมีประเภทข้อมูลพิเศษเหล่านี้ซึ่งรวมอยู่ในไลบรารีมาตรฐานของ Python ซึ่งดีมากจริงๆ
และสิ่งนี้สามารถทำให้โปรแกรมของเรามีประสิทธิภาพมากจริงๆ
ตอนนี้พวกเขาเชี่ยวชาญเพราะคุณจะไม่เห็นพวกเขาทุกที่ แต่เป็นการดีที่จะรู้ว่าพวกมันมีอยู่จริง
และฉันจะไปดูสิ่งที่ฉันโปรดปราน
สิ่งแรกที่ฉันจะแสดงให้คุณเห็นคือโมดูลการรวบรวม
ดังนั้นโมดูลการรวบรวมจึงมาจากคอลเล็กชันหรือคอลเล็กชัน
และมีสามสิ่งที่ฉันชอบที่นี่มาก
ฉันกำลังจะบอกว่านำเข้า ฉันจะนำเข้าตัวนับ พจนานุกรมเริ่มต้น แล้วตามด้วยพจนานุกรมที่เรียงลำดับ
ตอนนี้สังเกตว่าบางกลุ่มมีชั้นเรียนเพราะเป็นตัวพิมพ์ใหญ่
และบางอันก็ดูเหมือนเป็นแค่ฟังก์ชัน
และคุณสามารถอ่านโมดูลคอลเลกชั่นได้อีกครั้ง เลื่อนดูที่นี่และดูคอลเลกชั่น แล้วคุณจะเห็นคอลเลกชั่นทั้งหมดที่เรามี
ดังนั้นในคอลเล็กชันเหล่านี้ เรามาเริ่มกันที่คอลเลกชั่นแรกกัน
เคาน์เตอร์มีประโยชน์มาก
สมมติว่าฉันมีรายการที่ประกอบด้วย 1, 2, 3, 4, 5, 6, 7 และฉันต้องการนับจำนวนรายการในรายการถ้าฉันพิมพ์เคาน์เตอร์
คุณสามารถดูได้ที่นี่ว่ามันทำอะไร
แต่โดยพื้นฐานแล้วถ้าฉันให้รายการและคลิกเรียกใช้
ไม่เป็นไร.
เกิดอะไรขึ้นที่นี่?
มันสร้างพจนานุกรมที่หนึ่งมีหนึ่ง สองมีหนึ่ง สามมีหนึ่ง
อืม.
ถ้าเราเพิ่มอีกเจ็ดที่นี่?
เอาเป็นว่าเซเว่น
ถ้าฉันคลิกเรียกใช้
คุณเห็นไหม
เซเว่นตอนนี้มีสอง
ดังนั้นสิ่งที่ทำคือสร้างพจนานุกรมที่ติดตามจำนวนครั้งที่รายการเกิดขึ้นใน iterable
ดังนั้นเจ็ดจึงเกิดขึ้นสองครั้ง
ดังนั้นเจ็ดมีค่าเป็นสอง
อีกวิธีหนึ่งที่เราสามารถใช้สิ่งนี้ได้คือ สมมติว่าเรามีประโยคและพูดในประโยคว่าฉันต้องการตรวจสอบ
เรามาเขียนอะไรบางอย่างกันเถอะ
จะบอกว่า บลา บลา บลา
คิดถึงไพธอน
ถ้าฉันต้องทำเคาน์เตอร์ที่นี่และสมมติว่าให้ประโยคถ้าฉันคลิกเรียกใช้
ตรวจสอบออก
ฉันเห็นว่าจดหมายฉบับใดเกิดขึ้นมากที่สุด
ในกรณีของเรา h เกิดขึ้นห้าครั้ง ช่องว่างเกิดขึ้นห้าครั้ง และ B เกิดขึ้นสี่ครั้ง
และนี่มันเจ๋งจริงๆ
เนื่องจากการคำนวณประเภทนี้ของตัวนับการเปลี่ยนรายการเช่นรายการเป็นสิ่งที่เราเรียกว่าแผนที่แฮชหรือพจนานุกรมเช่นนี้เพื่อนับ
จริงๆ แล้วเป็นฟังก์ชันที่มีประโยชน์มากซึ่งคุณเห็นทั่วการเขียนโปรแกรม
จริงๆแล้วมันช่วยได้มากกับปัญหาการเพิ่มประสิทธิภาพ
ตอนนี้ เราจะไม่พูดถึงเรื่องนี้ แต่ฉันแค่ต้องการแสดงให้คุณเห็นว่าตัวนับเป็นสิ่งที่มีประโยชน์จริงๆ
ถ้าคุณต้องการนับผู้ใช้ที่ซ้ำกันหรืออีเมลที่ซ้ำกัน
ตัวนับมีประโยชน์จริงๆ
แล้วอันต่อไปล่ะ?
ผิดนัด ดิ๊ก
พระเจ้า เป็นคำที่พูดยากจริงๆ
เอาล่ะ สมมติว่าเรามีพจนานุกรมอยู่ที่นี่ และพจนานุกรมเล่มนี้ เราก็จะได้ พจนานุกรมที่ไม่มีนัยสำคัญมากจะมีหนึ่งและสอง
อะไรเป็นพจนานุกรมง่ายๆ
ในที่นี้ ฉันสามารถพูดได้ว่าดิกชันนารี
จุด
หรือวงเล็บ A แล้วผมจะจับค่าได้
ถูกต้อง.
ถ้าฉันคลิกเรียกใช้
โอ้ และฉันไม่ได้สะกดพจนานุกรม
ถูกต้อง.
มาแก้ไขกันเถอะ
มันดีกว่า.
แสดงความคิดเห็นกันตอนนี้เพราะเราไม่ต้องการสิ่งนี้
คุณจะเห็นว่าฉันได้รับค่าหนึ่ง
แต่ถ้าฉันพยายามเข้าถึงสิ่งที่ไม่มีอยู่จริง เช่น
ดู?
ฉันจะได้รับข้อผิดพลาดกับพจนานุกรมเริ่มต้น
ฉันจะได้รับค่าเริ่มต้นจริง ๆ หากไม่มีสิ่งใดอยู่
มาแปลงเป็นพจนานุกรมเริ่มต้นกัน
แบบนี้.
และตอนนี้หากฉันเรียกใช้สิ่งนี้ เราจะได้รับข้อผิดพลาด
อาร์กิวเมนต์แรกจะต้องสามารถเรียกได้หรือไม่มีเลย
ดังนั้นสิ่งที่ dict เริ่มต้นทำคืออนุญาตให้เราเข้าถึงคีย์เช่นนี้ แต่ให้ค่าเริ่มต้น
ในกรณีของเรา เราต้องให้มันเหมือนกับ callable object ในนี้
และ callable หมายถึงบางอย่างเช่นฟังก์ชั่นที่สามารถเรียกได้ดังนั้นถ้าฉันเรียกใช้
ฉันได้รับศูนย์
ทำไมถึงเป็นอย่างนั้น?
เมื่อฉันวิ่งเข้าไป
แบบนี้ไม่มีของอยู่ในนั้น
เราจะได้ศูนย์
วิธีจดชวเลขเพราะนี่จะรันคือให้ฟังก์ชันด่วนที่เราจะไม่ใช้
ลองทำแลมบ์ดาแล้วให้มัน
เอาเป็นว่าห้า
ตอนนี้ถ้าผมรันสิ่งนี้ มาทำพจนานุกรมกันที่นี่
วิ่ง.
อ้อ เรามาลองคว้ากันดู
สิ่งที่ไม่มีอยู่จริง
ถ้าฉันคลิกเรียกใช้ ฉันจะได้รับห้า
นี่เป็นรูปแบบทั่วไป
คุณจะเห็นว่าด้วย dict เริ่มต้น เราเพียงแค่ให้ค่าหรืออ็อบเจกต์ที่เรียกได้
ในกรณีของเรา เราแค่ให้ฟังก์ชันนี้แก่ฟังก์ชันนี้ ฟังก์ชันแลมบ์ดาที่คืนค่าเพียงห้า
ฉันก็เลยพูดได้นี่
มันไม่มีอยู่จริงหรือ.
พารามิเตอร์ที่สองจะเป็นอะไรก็ได้ที่เราต้องการ
และถ้าฉันได้วิ่ง
ฉันได้รับไม่มีอยู่แม้ว่าฉันกำลังเข้าถึงคีย์ที่ไม่มีอยู่จริง
ตอนนี้ถ้าฉันทำที่นี่และฉันคลิกเรียกใช้
ทุกอย่างทำงาน
ฉันยังคงได้รับหนึ่ง
และถ้าฉันเป็น
ผมว่าวิ่งด้วย
อีกครั้ง อีกประเภทข้อมูลเล็กๆ ที่มีประโยชน์
ตัวต่อไปถูกสั่งจู๋และอันนี้เป็นอีกอันที่น่าสนใจ
และพจนานุกรมคำสั่งจะเก็บลำดับที่คุณแทรกลงในพจนานุกรม
ให้ผมแสดง.
ถ้าเรามี สมมติว่าพจนานุกรม และพจนานุกรมนี้จะเป็นพจนานุกรมลำดับ
นี่คือวิธีที่เราสร้างมันขึ้นมา
ตรงนี้ ถ้าผมทำ dx เท่ากับ a
และนี่จะเท่ากับหนึ่ง
แล้วก็ D.
be จะเท่ากับสอง
และตอนนี้ฉันก็คัดลอกและทำพจนานุกรมเล่มที่สอง
สมมุติว่า rd ถึง
ถ.
และฉันตรวจสอบ
เฮ้ พิมพ์ DX สองเท่ากับ dx หรือไม่?
จำไว้ว่านี่คือการตรวจสอบค่า
ถ้าฉันเรียกใช้สิ่งนี้
ฉันได้รับจริง?
ใช่ พวกเขาเท่าเทียมกัน
แต่ถ้าฉันเปลี่ยนลำดับการแทรกที่นี่และฉันคลิกเรียกใช้
ฉันได้รับเท็จ
ขออภัย นี่ไม่ใช่สิ่งเดียวกันเพราะรักษาระเบียบ
หากเป็นพจนานุกรมทั่วไป
สมมุติว่าแทนที่จะเป็นสิ่งที่เรามีตรงนี้ ผมจะแค่สร้างพจนานุกรมขึ้นมาแล้วเราก็แค่
เราจะทำดูง่ายๆ ตรงนี้ สมมุติว่า 100
และทำเช่นเดียวกันสำหรับสิ่งนี้เช่นกัน
ดีดีสอง
เท่ากับสิ่งนี้
ถ้าตอนนี้ฉันเรียกใช้สิ่งนี้
ฉันได้รับความจริงเพราะคีย์และค่าทั้งหมดเหมือนกันกับพจนานุกรมทั่วไป
เราไม่สนใจจริงๆ
ไม่มีคำสั่ง
และฉันได้กล่าวถึงเรื่องนี้ก่อนหน้านี้
การเขียนพจนานุกรมในภาษาไพทอนนั้นไม่เป็นระเบียบ
แม้ว่าเมื่อเราพิมพ์กุญแจออกมา เราก็อาจจะได้ของตามลำดับ
เมื่อพจนานุกรมของเราใหญ่ขึ้นเรื่อย ๆ ก็ไม่รับประกันว่าเมื่อเราพิมพ์คีย์ทั้งหมดออกมา เราจะจัดเรียงพวกมันตามลำดับ
ในกรณีของพจนานุกรมการสั่งซื้อ เราได้รับการรับประกันนั้น
ขณะนี้มีผลการปฏิบัติงานบางอย่างสำหรับสิ่งเหล่านั้น
อย่างไรก็ตาม โดยรวมแล้วมีประโยชน์ในบางสถานการณ์
ไม่เป็นไร.
ยังต้องผ่านอีกเล็กน้อย แต่วิดีโอนี้ยาว
งั้นเราพักก่อน แล้วเจอกันใหม่ในวิดีโอหน้า
ลาก่อน.