Python Array vs. List: ความแตกต่าง & กรณีการใช้งาน
เผยแพร่แล้ว: 2021-11-03Python ได้เปรียบเหนือภาษาอื่นๆ ใน Data Science ในช่วงหลายปีที่ผ่านมา และโครงสร้างข้อมูลของ Python ก็มีบทบาทสำคัญ Python มีโครงสร้างข้อมูลจำนวนมาก ซึ่งอาร์เรย์และรายการเป็นที่นิยมที่สุดที่เราจะพูดถึงในวันนี้
Arrays and Lists เป็นโครงสร้างข้อมูลที่โดดเด่นสองโครงสร้างใน Python ที่มีความคล้ายคลึงกันในหลาย ๆ ด้าน ทั้งคู่สามารถใช้เพื่อเก็บข้อมูล และทำให้เราสามารถวนซ้ำ แบ่งส่วน และแม้แต่เข้าถึงองค์ประกอบโดยใช้วิธีการจัดทำดัชนี แล้วอะไรคือความแตกต่างระหว่าง list และ array ใน Python? นี่คือสิ่งที่เราจะพูดถึงในบทความนี้
สารบัญ
อาร์เรย์ใน Python
อาร์เรย์คือโครงสร้างข้อมูลที่ต่อเนื่องกันซึ่งมีองค์ประกอบที่เป็นเนื้อเดียวกัน กล่าวคือ องค์ประกอบที่อยู่ในประเภทข้อมูลเดียวกัน
ต่อไปนี้เป็นลักษณะสำคัญที่แสดงโดยอาร์เรย์ใน Python:
- ลักษณะ ต่อเนื่องกัน ของอาร์เรย์ช่วยให้ข้อมูลถูกเก็บไว้ในตำแหน่งหน่วยความจำที่อยู่ติดกัน ทำให้ดำเนินการกับองค์ประกอบอาร์เรย์ได้ง่ายขึ้น
- อาร์เรย์ใน Python สามารถ ประกาศได้ สองวิธี:
- การใช้ โมดูล อาร์เรย์
นำเข้าอาร์เรย์ # นำเข้าโมดูล 'อาร์เรย์'
myArray = array.array('i', [10, 20, 30]) # การประกาศอาร์เรย์
# สร้างอาร์เรย์: [10, 20, 30]
หมายเหตุ: ในการประกาศข้างต้น จำเป็นต้องระบุรหัสรูปแบบ ในที่นี้ 'i' คือโค้ดรูปแบบที่ย่อมาจาก integer
- การใช้ โมดูล NumPy
นำเข้า numpy # นำเข้าโมดูล 'numpy'
myArray = numpy.array([10, 20, 30]) # การประกาศอาร์เรย์
# สร้างอาร์เรย์: [10, 20, 30]
- มี การ จัด ลำดับ องค์ประกอบอาร์เรย์ ทุกองค์ประกอบมีดัชนีจำนวนเต็มที่เกี่ยวข้อง ตัวอย่างเช่น ใน arr[10, 20, 30], '10', '20' และ '30' จะถูกเก็บไว้ที่ดัชนี 0, 1 และ 2 ตามลำดับในหน่วยความจำ
หมายเหตุ: การสร้างดัชนีอาร์เรย์ใน Python เริ่มต้นจาก 0
- อาร์เรย์สามารถมีค่าที่เป็นชนิดเดียวกันเท่านั้น เช่น อิลิเมน ต์ ที่เป็น เนื้อเดียวกัน ตัวอย่างเช่น,
อาร์[1, 2, 3]
arr['a', 'b', 'c']
โดยทั่วไปอาร์เรย์ใน Python จะใช้เพื่อจัดเก็บรายการของรายการที่คล้ายคลึงกัน กรณีการใช้งานจริงของจอแสดงผลคือการจัดเก็บราคาหุ้นของหุ้นตัวใดตัวหนึ่งในช่วงวัน ราคาปิดของหุ้นยังคงไม่เปลี่ยนแปลงสำหรับหุ้นและวันที่ระบุ ซึ่งหมายความว่าการจัดเก็บรายละเอียดดังกล่าวในโครงสร้างข้อมูลที่ไม่เปลี่ยนรูปแบบ เช่น อาร์เรย์นั้นเหมาะสมกว่ามาก
ในความเป็นจริง อาร์เรย์ NumPy มักใช้เพื่อเก็บข้อมูลจากชุดข้อมูลขนาดใหญ่ในวิทยาศาสตร์ข้อมูลและการเรียนรู้ของเครื่อง แต่ละอาร์เรย์ NumPy สอดคล้องกับคุณลักษณะในชุดข้อมูล
รายการใน Python
รายการเป็นหนึ่งในสี่คอนเทนเนอร์ที่สร้างขึ้นหรือโครงสร้างข้อมูลที่รองรับใน Python ข้อดีที่สำคัญอย่างหนึ่งของการใช้รายการคือรายการเดียวสามารถเก็บค่าของประเภทข้อมูลได้หลายประเภท
ต่อไปนี้เป็นลักษณะสำคัญที่แสดงโดยรายการใน Python:
- รายการมีความยืดหยุ่นมากขึ้นในแง่ของการจัดเก็บข้อมูล พวกเขาสามารถมี ข้อมูลที่ แตกต่างกัน เช่นองค์ประกอบประเภทต่างๆ ตัวอย่างเช่น,
[1, 'สวัสดี', ['x', 'y']]
- รายการยัง ได้รับคำสั่ง และองค์ประกอบที่จัดเก็บไว้ในรายการสามารถเข้าถึงได้โดยใช้ดัชนี ดัชนีเชิงลบ สามารถใช้เพื่อเข้าถึงองค์ประกอบจากส่วนท้ายของรายการ ตัวอย่างเช่น.,
myList = [20, 40, 'สวัสดี', 'โลก']
# พิมพ์องค์ประกอบสุดท้ายที่สอง
พิมพ์ (myList[-2])
เอาท์พุต
- รายการสามารถ กลายพันธุ์ ได้อย่างง่ายดาย หลังจากการเริ่มต้นของรายการ หากต้องการแก้ไขค่าใด ๆ ให้เข้าถึงโดยใช้ดัชนีขององค์ประกอบ
รถยนต์ = ['ฟอร์ด', 'เทสลา', 'จากัวร์']
รถยนต์ [2] = 'บีเอ็มดับเบิลยู'
- รายการ หลายมิติ สามารถนำไปใช้ใน Python โดยใช้แนวคิดของรายการที่ซ้อนกัน รายการหลายมิติเหล่านี้สามารถใช้เป็นอาร์เรย์หลายมิติใน Python
myArr = [[1, 2], [3, 4]]
# สร้างอาร์เรย์ 2 มิติ:
# |1, 2|
# |3, 4|
กรณีการใช้งานจริงของรายการที่แตกต่างกันหลายมิติใน Python สามารถจัดเก็บชุดของรายละเอียดผลิตภัณฑ์ เช่น ประเภทผลิตภัณฑ์ หมวดหมู่ ราคาต้นทุน ราคาขาย ฯลฯ แต่ละรายการในรายการหลายมิติดังกล่าวแสดงถึง ผลิตภัณฑ์. เนื่องจากรายการเปลี่ยนแปลงได้ การเปลี่ยนแปลงรายละเอียดผลิตภัณฑ์จึงง่ายขึ้นทุกครั้งที่เราต้องการ
หากคุณเป็นนักพัฒนา Python ที่ต้องการ การครอบคลุมความแตกต่างพื้นฐานระหว่างอาร์เรย์และรายการใน Python เป็นประเด็นสำคัญ ดังนั้น เพื่อไม่ให้เป็นการเสียเวลา เรามาเริ่มกันที่คำอธิบายแบบตารางใน Python Array vs. List กัน
รู้ความแตกต่างระหว่างอาร์เรย์และรายการใน Python
Python Array vs List : ใครเป็นผู้ชนะ?
พารามิเตอร์ | รายการ | อาร์เรย์ |
ประกาศ | ไม่จำเป็นต้องประกาศรายชื่อเนื่องจากสร้างขึ้นใน Python รายการ = [ 10 , 20 , 30 ] | คุณต้องนำเข้าโมดูลอาร์เรย์หรือ ไลบรารี NumPy เพื่อประกาศอาร์เรย์ my_arr_1 = array.array( 'ผม' , [ 10 , 20 , 30 ]) |
ประเภทข้อมูล | รายการเดียวสามารถมีค่าที่เป็นของชนิดข้อมูลที่แตกต่างกัน myList = [ 40 'สวัสดี' ' ม ' ] | องค์ประกอบทั้งหมดของอาร์เรย์ควรเป็นประเภทข้อมูลเดียวกัน myArr = arr.array(i, [ 1 , 0 , 9]) |
ขนาด | รายการ Python สามารถปรับขนาดได้ เนื่องจากระหว่างการเริ่มต้นรายการ Python จะเริ่มต้นองค์ประกอบพิเศษบางอย่าง | อาร์เรย์มีขนาดคงที่ที่ไม่สามารถเปลี่ยนแปลงได้ |
ช่องว่าง/ หน่วยความจำ | ใช้พื้นที่และหน่วยความจำที่มากขึ้นสำหรับการเพิ่มหรือลบองค์ประกอบ | จัดเก็บข้อมูลในลักษณะที่กะทัดรัดยิ่งขึ้น |
การจัดเก็บข้อมูล | เหมาะสำหรับการจัดเก็บข้อมูลจำนวนเล็กน้อย | เหมาะสำหรับการจัดเก็บข้อมูลจำนวนมาก |
การดำเนินการทางคณิตศาสตร์ | ไม่สามารถใช้สำหรับการดำเนินการทางคณิตศาสตร์โดยตรง | องค์ประกอบอาร์เรย์สามารถจัดการได้อย่างง่ายดายโดยใช้การดำเนินการทางคณิตศาสตร์ขั้นสูง |
แสดงข้อมูล | องค์ประกอบของรายการสามารถแสดงได้โดยไม่มีการวนซ้ำ my_List = [ 1 , “เดนนิส” ,[ 'a' , 'b' ]] พิมพ์ (my_List) | จำเป็นต้องมีการวนซ้ำสำหรับองค์ประกอบของอาร์เรย์ที่จะแสดง นำเข้าอาร์เรย์ my_Arr = array.array( 'ผม' , [ 1 , 2 , 3 ]) สำหรับ ฉันใน my_Arr: พิมพ์ (ฉัน) |
Python Array vs List : ใครเป็นผู้ชนะ?
หากคุณกำลังอ่านส่วนนี้ แสดงว่าคุณคุ้นเคยกับความแตกต่างระหว่าง list และ array ใน Python แล้ว อย่างไรก็ตาม คุณควรทราบด้วยว่าเมื่อใดควรใช้ Array หรือ List ในโปรแกรมของคุณ
ส่วนนี้กล่าวถึงสถานการณ์ต่างๆ ที่คุณต้องเลือกโครงสร้างข้อมูลที่เหมาะสมที่สุดจากทั้งสอง
ประเภทขององค์ประกอบ
หากไม่ได้กำหนดประเภทข้อมูลไว้ล่วงหน้า แสดงว่ามีการรวบรวมข้อมูลที่เป็นของหลายประเภท ตัวอย่างเช่น หากต้องการเก็บบันทึกของนักเรียนที่มีเอนทิตี เช่น name(string) , ID(integer) และ marks(float) ให้เลือก รายการ ที่ต้องการ
หากข้อมูลที่จะจัดเก็บอยู่ในประเภทข้อมูลเดียวกัน คุณสามารถเลือก อาร์เรย์ หรือ รายการ ได้ที่นี่ ทางเลือกจะขึ้นอยู่กับพารามิเตอร์อื่นๆ เช่น ขนาดของข้อมูล การดำเนินการที่จะดำเนินการ และการใช้งาน
การใช้หน่วยความจำ
ปริมาณการใช้หน่วยความจำในรายการมีมากขึ้น เนื่องจากมีการจัดสรรพื้นที่เพิ่มเติมบางส่วนในระหว่างการเริ่มต้นของรายการ หากการรวบรวมข้อมูลค่อนข้างเล็ก รายการ ก็เป็นทางเลือกที่มีประสิทธิภาพ
ที่มาของรูปภาพ: webcourses@UCF
อาร์เรย์ เหมาะสำหรับการจัดเก็บข้อมูลจำนวนมาก เนื่องจากการใช้หน่วยความจำของอาร์เรย์มีประสิทธิภาพมากกว่ารายการ
ที่มาของรูปภาพ: webcourses@UCF
ปฏิบัติการที่รองรับ
หากข้อมูลของคุณไม่ต้องการการคำนวณใดๆ รายการ อาจเป็นทางเลือกที่ดีกว่า เนื่องจากสนับสนุนฟังก์ชันในตัวที่ดีกว่าสำหรับการจัดการข้อมูล
ในทางกลับกัน อาร์เรย์ ควรใช้เมื่อจำเป็นต้องดำเนินการทางคณิตศาสตร์ โมดูล NumPy รองรับการดำเนินการทางคณิตศาสตร์ขั้นสูงมากมาย รวมถึงการดำเนินการตรีโกณมิติและลอการิทึม
โมดูลที่จะนำเข้า
สามารถประกาศรายชื่อได้โดยไม่ต้องนำเข้าโมดูลหรือไลบรารี ใด ๆ สามารถกำหนดได้เหมือนกับตัวแปรทั่วไป เนื่องจากเป็นโครงสร้างข้อมูลที่สร้างขึ้นใน Python
อย่างไรก็ตาม อาร์เรย์ ไม่ใช่หนึ่งในคอนเทนเนอร์เริ่มต้นของ Python มีสองโมดูลที่นิยมมากที่สุด คือ อาร์เรย์ และ NumPy แต่ละโมดูลมาพร้อมกับฟังก์ชันที่กำหนดไว้ล่วงหน้าเพื่อจัดการและจัดการข้อมูลที่จัดเก็บไว้ในอาร์เรย์
บทสรุป
บทความนี้ครอบคลุมหัวข้อทั้งหมดที่จำเป็นเพื่อให้คุณเข้าใจอย่างลึกซึ้งถึงความแตกต่างระหว่างอาร์เรย์และรายการใน Python เรายังกล่าวถึงกรณีการใช้งานต่างๆ ที่รายการหรืออาร์เรย์มีความเหมาะสม
หากคุณต้องการเริ่มต้นการเดินทางใน Data Science ให้ลงทะเบียนใน Data Science ของ upGrad แน่นอนวันนี้ ดูหลักสูตรต่างๆ มากมายใน upGrad เพื่อเริ่มต้นอาชีพของคุณ
ควรใช้อาร์เรย์ Python มากกว่ารายการในสถานการณ์ต่างๆ: อาร์เรย์นั้นเร็วกว่ารายการในไพ ธ อนเนื่องจากองค์ประกอบทั้งหมดที่เก็บไว้ในอาร์เรย์นั้นเป็นเนื้อเดียวกัน กล่าวคือ พวกมันมีประเภทข้อมูลเดียวกันในขณะที่รายการมีองค์ประกอบที่ต่างกัน รายการ Python มีความสำคัญอย่างยิ่งในการจัดเก็บข้อมูลและสามารถใช้ได้ในหลายกรณี:เมื่อใดควรใช้อาร์เรย์เหนือรายการใน Python
1. เนื่องจากอาร์เรย์ใน Python มีขนาดกะทัดรัดและใช้หน่วยความจำน้อยกว่ารายการ จึงควรใช้อาร์เรย์เมื่อต้องจัดเก็บข้อมูลจำนวนมาก
2 ไม่จำเป็นต้องใช้รายการเพื่อจัดเก็บข้อมูลเมื่อองค์ประกอบทั้งหมดเป็นประเภทข้อมูลเดียวกัน ดังนั้นอาร์เรย์จะมีประสิทธิภาพมากขึ้นที่นี่
3. ข้อมูลที่จัดเก็บในอาร์เรย์สามารถจัดการทางคณิตศาสตร์ได้อย่างง่ายดาย ในขณะที่ข้อมูลนี้ค่อนข้างไม่สะดวกกับรายการ ระหว่างอาร์เรย์กับรายการใน Python อันไหนเร็วกว่ากัน
นอกจากนี้อาร์เรย์ Python ยังใช้งานในภาษา C ซึ่งทำให้เร็วกว่ารายการที่มีอยู่ภายใน Python มาก รายการใดเหมาะสมกว่าสำหรับการจัดเก็บข้อมูลใน Python
1. เมื่อคุณมีองค์ประกอบต่างๆ ของประเภทข้อมูลที่แตกต่างกัน คุณสามารถจัดเก็บไว้ในรายการและสามารถเข้าถึงองค์ประกอบเหล่านี้ได้เพียงแค่อ้างอิงถึงดัชนีขององค์ประกอบเหล่านั้น
2. รายการสามารถปรับขนาดได้ ดังนั้น รายการจึงมีประโยชน์เมื่อคุณไม่แน่ใจเกี่ยวกับจำนวนองค์ประกอบ
3. รายการเป็นที่นิยมอย่างมากเมื่อต้องจัดเก็บข้อมูลจำนวนเล็กน้อยเนื่องจากฟังก์ชันในตัวของรายการค่อนข้างสะดวกสำหรับการจัดการข้อมูล