อาร์เรย์และรายการทำงานอย่างไรใน Python

อาร์เรย์และรายการทำงานอย่างไรใน Python

อาร์เรย์และรายการเป็นโครงสร้างข้อมูลที่มีประโยชน์มากที่สุดในการเขียนโปรแกรม แม้ว่าจะมีเพียงไม่กี่คนที่ใช้มันอย่างเต็มศักยภาพ วันนี้ผมจะมาพูดถึงคุณเกี่ยวกับพื้นฐานต่างๆ พร้อมกับตัวอย่าง Python ง่ายๆ





ข้อกำหนดเบื้องต้น

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





ในขณะที่แนวคิดพื้นฐานต่อไปนี้สามารถนำไปใช้กับภาษาใดก็ได้ ฉันจะสาธิตตัวอย่างใน Python เป็นภาษาที่เรียนรู้ได้ง่ายและเป็นแพลตฟอร์มที่ยอดเยี่ยมในการทำความเข้าใจว่าเกิดอะไรขึ้น นอกเหนือไปจากนี้, tutorialspoint.com มีล่าม Python ออนไลน์ที่ยอดเยี่ยม - คุณไม่จำเป็นต้องติดตั้ง Python ด้วยซ้ำหากไม่ต้องการ (ถ้าคุณทำ ให้อ่านคู่มือของเราเกี่ยวกับสภาพแวดล้อมเสมือน )





โครงสร้างข้อมูล

a .คืออะไร โครงสร้างข้อมูล ? ในระดับพื้นฐานที่สุด โครงสร้างข้อมูลเป็นวิธีการจัดเก็บข้อมูลอย่างมีประสิทธิภาพ สับสนได้ง่ายเพราะโครงสร้างข้อมูลไม่ใช่ ประเภทข้อมูล . ชนิดข้อมูลจะบอกคอมไพเลอร์ (หรือในกรณีของไพธอนคือล่าม) ว่าข้อมูลมีจุดประสงค์เพื่อใช้งานอย่างไร โครงสร้างข้อมูลระบุการดำเนินการที่สามารถทำได้ และมักใช้กฎและข้อบังคับเฉพาะ

คุณอาจเคยได้ยินมาบ้าง เชิงเส้น ชนิดข้อมูล (องค์ประกอบตามลำดับ):



  • Array
  • เมทริกซ์
  • ตารางค้นหา

ในทำนองเดียวกัน รายการ มักมีกฎเกณฑ์และวิธีการควบคุมวิธีดำเนินการ รายการทั่วไปบางส่วน ได้แก่ :

  • รายการที่เชื่อมโยง
  • รายการที่เชื่อมโยงเป็นสองเท่า
  • รายการอาร์เรย์หรือ Dynamic Array

มีโครงสร้างข้อมูลที่แตกต่างกันมากมาย คุณอาจเคยได้ยินเกี่ยวกับ ต้นไม้ไบนารี , กราฟ , หรือ แฮช . วันนี้ฉันจะพูดถึงเรื่องพื้นฐาน แต่คุณอาจต้องการเรียนรู้เพิ่มเติมเมื่อคุณสบายใจ





Array

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

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





from array import array
numbers = array('i', [2, 4, 6, 8])
print(numbers[0])

บรรทัดแรกนำเข้า อาร์เรย์ โมดูล -- ที่จำเป็นสำหรับการทำงานกับอาร์เรย์ บรรทัดที่สองสร้างอาร์เรย์ใหม่ที่เรียกว่า ตัวเลข และเริ่มต้นด้วยค่า 2, 4, 6 และ 8 แต่ละองค์ประกอบจะได้รับ an จำนวนเต็ม ค่าที่เรียกว่า กุญแจ หรือ ดัชนี . กุญแจเริ่มต้นที่ ศูนย์ , ดังนั้น ตัวเลข[0] จะเข้าถึงองค์ประกอบแรก ( 2 ):

คุณอาจสงสัยว่าสิ่งที่ 'ผม' ใช้สำหรับ มันคือ พิมพ์รหัส ที่บอก Python ว่าอาร์เรย์จะจัดเก็บจำนวนเต็ม ปกติแล้วสิ่งนี้จะไม่จำเป็นใน Python (จะถือว่าเป็น 'unpythonic') เหตุผลนี้ง่าย Arrays ใน Python เป็น wrapper ที่บางมากบนอาร์เรย์ C พื้นฐานของระบบปฏิบัติการของคุณ ซึ่งหมายความว่ารวดเร็วและเสถียร แต่อาจไม่เป็นไปตามไวยากรณ์ Python เสมอไป

ดูหน้าจอโทรศัพท์บนพีซีผ่าน usb

คุณไม่สามารถเก็บชนิดผสมในอาร์เรย์เหล่านี้ สมมติว่าคุณต้องการเก็บสตริง 'makeuseof.com':

numbers = array('i', [2, 4, 6, 'makeuseof.com'])

สิ่งนี้จะไม่ได้รับอนุญาตและจะมีข้อยกเว้น:

วิธีพิมพ์องค์ประกอบทั้งหมดมีดังนี้

print(numbers)

วิธีการเข้าถึงองค์ประกอบอาร์เรย์นี้ใช้งานได้ดี และเหมาะสำหรับงานที่เหมาะสม สิ่งที่ไม่ดีสำหรับการเข้าถึงอาร์เรย์ทั้งหมด โปรแกรมเมอร์มักขี้เกียจ ดังนั้นฉันจะเขียนโค้ดให้ดีขึ้นและดีขึ้น ถ้ามันหมายความว่าฉันสามารถบำรุงรักษาได้ง่ายขึ้น และลดความพยายามในการคัดลอกและวาง

ภาษาการเขียนโปรแกรมทุกภาษาจะใช้การวนซ้ำบางประเภท ซึ่งเหมาะสำหรับการวนซ้ำ (วนซ้ำ) เหนือองค์ประกอบรายการ ลูปที่พบบ่อยที่สุดคือ ในขณะที่ และ สำหรับ . Python ทำให้สิ่งต่าง ๆ ง่ายยิ่งขึ้นด้วยการจัดหา a สำหรับใน ห่วง:

for number in numbers:
print(number)

สังเกตว่าคุณไม่จำเป็นต้องเข้าถึงองค์ประกอบด้วยคีย์ของพวกเขาได้อย่างไร นี่เป็นวิธีการทำงานกับอาร์เรย์ที่ดีกว่ามาก อีกวิธีหนึ่งในการวนซ้ำรายการคือกับ a สำหรับ ห่วง:

for i in range(len(numbers)):
print(numbers[i])

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

รายการ

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

รายการเป็นอาร์เรย์ชนิดพิเศษ ความแตกต่างที่ใหญ่ที่สุดคือรายการสามารถมีได้ ผสม ประเภท (จำไว้ว่าอาร์เรย์ต้องมีองค์ประกอบประเภทเดียวกัน) รายการนั้นง่ายมากใน Python:

ลำโพง iphone ของฉันไม่ทำงาน
cars = ['Ford', 'Austin', 'Lancia']

สังเกตว่าคุณไม่จำเป็นต้องนำเข้า อาร์เรย์ โมดูล?

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

print(cars)

เช่นเดียวกับอาร์เรย์ คุณสามารถวนซ้ำองค์ประกอบรายการโดยใช้ลูปได้:

for car in cars:
print(car)

เคล็ดลับปาร์ตี้ที่แท้จริงของรายการคือประเภทผสม ไปข้างหน้าและเพิ่มข้อมูลเพิ่มเติม:

cars = ['Ford', 'Austin', 'Lancia', 1, 0.56]

นี่ไม่ใช่ปัญหาสำหรับ Python มันไม่ได้ทำให้เกิดข้อยกเว้น:

ง่ายต่อการเพิ่มองค์ประกอบใหม่ในรายการ (บางสิ่งที่ไม่สามารถทำได้กับอาร์เรย์):

cars = ['Ford', 'Austin']
print(cars)
cars.append('Lancia')
print(cars)

คุณยังสามารถรวมสองรายการเข้าเป็นรายการเดียว:

cars = ['Ford', 'Austin']
print(cars)
other_cars = ['Lotus', 'Lancia']
cars.extend(other_cars)
print(cars)

การลบองค์ประกอบโดยใช้ .ทำได้ง่ายเช่นเดียวกัน ลบ ไวยากรณ์:

cars = ['Ford', 'Austin', 'Lotus', 'Lancia']
print(cars)
cars.remove('Ford')
print(cars)

ครอบคลุมพื้นฐานของรายการและอาร์เรย์ใน Python ทำไมไม่ลองพิจารณาโครงการเขียนโค้ด เช่น การอ่านและการเขียนไปยัง Google ชีต การอ่านข้อมูล json บางทีคุณอาจจะนำทักษะใหม่ของคุณไปใช้ในการทำบ้าง ปุ่มลัดที่กำหนดเอง . แม้จะเป็นภาษาการเขียนโปรแกรมที่แตกต่างกัน แต่หลักการของอาร์เรย์เหล่านี้ยังคงมีผลบังคับใช้

แบ่งปัน แบ่งปัน ทวีต อีเมล 5 เคล็ดลับในการเพิ่มพลังให้เครื่อง VirtualBox Linux ของคุณ

เบื่อกับประสิทธิภาพที่ย่ำแย่ของเวอร์ชวลแมชชีนหรือไม่? นี่คือสิ่งที่คุณควรทำเพื่อเพิ่มประสิทธิภาพ VirtualBox ของคุณ

อ่านต่อไป
หัวข้อที่เกี่ยวข้อง
  • การเขียนโปรแกรม
  • การเขียนโปรแกรม
  • Python
เกี่ยวกับผู้เขียน โจ โคเบิร์น(ตีพิมพ์บทความ 136 บทความ)

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

เพิ่มเติมจาก Joe Coburn

สมัครรับจดหมายข่าวของเรา

เข้าร่วมจดหมายข่าวของเราสำหรับเคล็ดลับทางเทคนิค บทวิจารณ์ eBook ฟรี และดีลพิเศษ!

คลิกที่นี่เพื่อสมัครสมาชิก