4 Ways To Level Up Your Python Code

07-Apr-21

คัมภีร์เทพ IT

See the original english version Click here!

 

สิ่งที่ดีอย่างหนึ่งเกี่ยวกับ Python ก็คือ คุณสามารถทำสิ่งต่าง ๆ ได้ง่ายขึ้น อีกทั้ง Python ยังมี Functions/Features มากมายที่ทำให้ Code ของคุณ Clean ขึ้น อ่านและเขียนง่ายขึ้น ในบทความนี้คุณจะได้เรียนรู้ 4 วิธี ที่ช่วยยกระดับ Python Code ให้มีประสิทธิภาพมากขึ้น

1. ใช้ enumerate() แทนการใช้ range(len())

อาจมีบางครั้งที่คุณต้อง Iterate ผ่าน Collection และมีการ Track Index ที่คุณกำลังเข้าถึงอยู่ ด้วยเหตุนี้หลายคน จึงใช้การ Iterating ผ่าน range(len(collection))

แต่การใช้ enumerate() Function เป็นวิธีที่ดีและ Clean กว่า การใช้วิธีในข้างต้น

enumerate() Function จะ Returns Enumerate Object ที่เก็บ Index และ Value ของแต่ละ Item

สิ่งนี้ไม่เพียงช่วยให้คุณสามารถ Track ได้ดีขึ้น ว่าคุณกำลังอยู่ตรงไหนใน Collection ของคุณ แต่ยังทำให้คุณรู้ว่า ในนั้นมันมี Value ใด อยู่ด้วย

มาดูตัวอย่างที่แสดงให้เห็นถึงสิ่งที่กล่าวมาข้างต้น ซึ่งมีทั้ง range(len(collection)) และ enumerate(collection) Methods:

หากคุณต้องการให้ Enumerate Object ของคุณเริ่มต้นที่อื่น ที่ไม่ใช่ 0 คุณสามารถส่งค่าเริ่มต้นของคุณไปยัง start = Parameter สมมติว่าเราต้องการให้เริ่มต้นที่ 1 คุณสามารถเขียนได้ดังนี้:

2. ใช้ .get() แทนการใช้วงเล็บเหลี่ยม เพื่อดึง Dictionary Items

สมมติว่าคุณมี Dictionary ที่มีลักษณะดังนี้:

และคุณต้องการค่าของ age คุณอาจคุ้นเคยกับการเขียน nik['age'] แม้ว่าตอนนี้มันจะสามารถใช้งานได้ใน Instance นี้ แต่มันจะไม่ทำงานเลยหากไม่มีค่าอยู่ภายใน

ตัวอย่างเช่น การพยายามเข้าถึงค่าที่ไม่มีอยู่จริงของ 'location' ซึ่งจะทำให้เกิด KeyError ขึ้น:

หากคุณทำการ Iterate ผ่าน List ของ Dictionaries สิ่งนี้จะไป Interrupt Script ของคุณ แน่นอนว่าคุณสามารถใช้ try, except แต่ทำไมคุณต้องทำแบบนั้น ในเมื่อคุณสามารถใช้ .get() Method แทนได้

Method นี้จะ Return None กลับไปให้ ในกรณีที่ไม่มี Key และยังสามารถดำเนินการต่อไปได้

3. ลดความซับซ้อนในการ Iterate Multiple Lists ด้วย Zip()

อาจมีหลายครั้งที่คุณได้รับหลาย Collections (อย่างเช่น Lists) และคุณจำเป็นต้อง Iterate แต่ละ Collection ร่วมกัน

เช่นเดียวกับในตัวอย่างแรก คุณสามารถใช้ range(len(collection)) ได้ แต่มันก็ทำให้อ่านยาก

ลองดูที่ตัวอย่างต่อไปนี้:

ตอนนี้ เรามี List ของ Tuples ที่มี Items จากแต่ละ List

มันเป็นวิธีที่ดีที่ทำสิ่งนี้ แต่ขึ้นอยู่กับจำนวน Items ที่คุณทำการ Iterate อยู่ ซึ่งการทำแบบนี้อาจสร้างความยุ่งยากได้

ด้วยการใช้ Built-in zip() Function ของ Python เราจะสามารถทำให้สิ่งนี้ได้ง่ายขึ้นอีกเล็กน้อย

หมายเหตุ: zip() Function จะ Return zip object แต่คุณสามารถบังคับให้เป็น Datatypes อื่นได้โดยตรงด้วยการใช้ list(), tuple() หรือ dict() Functions

ลองดูที่ตัวอย่างนี้และ Return List ของ Tuples อีกครั้ง:

จะเห็นว่ามัน Clean ขึ้นกว่าเดิม

นอกจากนี้คุณยังสามารถบังคับสิ่งต่าง ๆ ลงใน Dictionaries ได้โดยตรงได้เช่นกัน แต่คุณสามารถทำได้กับแค่ 2 Collections เท่านั้น

ตัวอย่างเช่น หากคุณต้องการ Dictionary ที่มีคู่ key:value ของ name:age คุณสามารถเขียนได้ดังนี้:

หากคุณทำเช่นนี้กับ Collection ที่มากกว่า 2 Collections จะทำให้เกิด ValueError

4. ใช้ f-strings เพื่อ Print ไปยัง Console ได้อย่างง่ายดาย

เริ่มจาก Python 3.8 เป็นต้นไป f-strings ยังสามารถใช้เพื่อสร้าง Code ที่อธิบายตัวมันเองได้ ด้วยการใช้ =

ความหมายก็คือ เมื่อคุณกำลัง Print ค่าของตัวแปรไปยัง Console คุณไม่จำเป็นต้องเขียน f"variable_name = {variable_name}" อีกต่อไป

ลองดูตัวอย่างด้านล่างนี้ :

แต่คุณสามารถเขียนใหม่ได้ดังนี้:

แม้มันจะเป็นการเปลี่ยนแปลงเพียงเล็กน้อย แต่กลับมีประสิทธิภาพมาก ซึ่งทำให้ Code ของคุณอ่านง่ายขึ้นกว่าเดิม

ที่มา:  https://betterprogramming.pub/

 

 

รับตำแหน่งงานไอทีใหม่ๆ ด้วยบริการ IT Job Alert

 

อัพเดทบทความจากคนวงในสายไอทีทาง LINE ก่อนใคร
อย่าลืมแอดไลน์ @techstarth เป็นเพื่อนนะคะ

เพิ่มเพื่อน

 

บทความล่าสุด