Python Array vs. List: ความแตกต่าง & กรณีการใช้งาน

เผยแพร่แล้ว: 2021-11-03

Python ได้เปรียบเหนือภาษาอื่นๆ ใน 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 มากกว่ารายการในสถานการณ์ต่างๆ:

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

ระหว่างอาร์เรย์กับรายการใน Python อันไหนเร็วกว่ากัน

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

นอกจากนี้อาร์เรย์ Python ยังใช้งานในภาษา C ซึ่งทำให้เร็วกว่ารายการที่มีอยู่ภายใน Python มาก

รายการใดเหมาะสมกว่าสำหรับการจัดเก็บข้อมูลใน Python

รายการ Python มีความสำคัญอย่างยิ่งในการจัดเก็บข้อมูลและสามารถใช้ได้ในหลายกรณี:

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