ในการเขียนโปรแกรม รายการอาจมีประโยชน์พอๆ กับโครงสร้างข้อมูลเหมือนกับอาร์เรย์ รายการคืออะไรจะสร้างได้อย่างไร วิธีทำงานกับรายการใน Python คุณจะได้เรียนรู้เกี่ยวกับเรื่องนี้จากบทความของเรา
รายการใน Python คืออะไร
รายการสามารถระบุได้บางส่วนด้วยอาร์เรย์ แต่ความแตกต่างและความได้เปรียบของรายการ (หรือจะเรียกว่ารายการ) ก็คือสามารถรวมประเภทข้อมูลที่แตกต่างกันได้ นั่นคือรายการเปิดโอกาสมากขึ้นในการจัดเก็บลำดับของอ็อบเจ็กต์ ตัวแปรที่เรียกว่ารายการมีการอ้างอิงถึงโครงสร้างในหน่วยความจำที่มีการอ้างอิงถึงโครงสร้างทางเลือก
รายการใน Python เป็นคอลเลกชันที่เรียงลำดับของวัตถุประเภทผสมที่สามารถแก้ไขได้และวัตถุอาจแตกต่างกัน
มันหมายความว่าอะไร? มาดูคำจำกัดความโดยละเอียดกัน
ขนาดของรายการสามารถเปลี่ยนแปลง ลดขนาด เพิ่มบรรทัดใหม่ได้ คุณยังสามารถเปลี่ยนโครงสร้างทั้งหมดของรายการได้อีกด้วย โปรดทราบว่าทุกครั้งที่มีการใช้วิธีการในรายการ รายการต้นฉบับจะเปลี่ยนไป ไม่ใช่การคัดลอก
เพื่อความชัดเจนยิ่งขึ้น คุณสามารถนึกถึงรายการสินค้าใน Python เป็นรายการสินค้าที่ต้องซื้อในร้านค้า เมื่อวางแผนการซื้อของ สิ่งของที่จำเป็นทั้งหมดอยู่ด้านล่างตัวหนึ่ง และแต่ละรายการมีบรรทัดเป็นของตัวเอง รายการใน Python จะมีองค์ประกอบทั้งหมดที่คั่นด้วยเครื่องหมายจุลภาคและในวงเล็บเหลี่ยม เพื่อให้ Python สามารถเข้าใจได้ มีการระบุรายการไว้ที่นี่ องค์ประกอบจะอยู่ในเครื่องหมายคำพูด นี่เป็นเงื่อนไขบังคับ เนื่องจากแต่ละองค์ประกอบเป็นบรรทัดที่แยกจากกัน
วิธีสร้างรายการ
มาต่อกันที่ตัวอย่างคลาสสิก มาสร้างรายการที่เราจะใช้และแก้ไขกันต่อไป มีหลายวิธีในการสร้างรายชื่อ
หนึ่งในนั้นคือแอปพลิเคชั่น รายการฟังก์ชันในตัว ( ). ในการทำเช่นนี้ คุณต้องประมวลผลอ็อบเจ็กต์ใดๆ ที่สามารถทำซ้ำได้ (สตริง ทูเพิล หรือรายการที่มีอยู่) ในกรณีนี้สตริง
นี่คือสิ่งที่เกิดขึ้นในตอนท้าย:
>>> list('list') ['c', 'n', 'i', 'c', 'o', 'to']
ตัวอย่างที่สองแสดงให้เห็นว่ารายการสามารถมีวัตถุที่แตกต่างกันมากได้ไม่จำกัดจำนวน นอกจากนี้ รายการยังสามารถว่างเปล่าได้
>>> s = [] # รายการว่าง >>> l = ['s', 'p', ['isok'], 2] >>> s [] >>> l ['s', 'p' , ['ไอซอก'], 2]
วิธีถัดไป ที่สาม ในการสร้างรายชื่อคือสิ่งที่เรียกว่า เครื่องกำเนิดรายการ.
ตัวสร้างรายชื่อเป็นโครงสร้างวากยสัมพันธ์สำหรับการสร้างรายชื่อ คล้ายกับ for loop
>>> c = [c * 3 สำหรับ c ใน 'list'] >>> c ['lll', 'iii', 'sss', 'ttt']
นอกจากนี้ยังสามารถใช้เพื่อสร้างโครงสร้างที่ใหญ่โต:
>>> c = [c * 3 สำหรับ c ใน 'list' ถ้า c != 'i'] >>> c ['lll', 'sss', 'ttt'] >>> c = [c + d สำหรับ c ใน 'list' if c != 'i' สำหรับ d ใน 'spam' ถ้า d != 'a'] >>> c ['ls', 'lp', 'lm', 'ss', 'sp' , 'sm', 'ts', 'tp', 'tm']
อย่างไรก็ตาม วิธีการสร้างนี้ไม่ได้มีประสิทธิภาพเสมอไปเมื่อรวบรวมรายชื่อหลายรายการ ดังนั้นจึงแนะนำให้ใช้ for loop เพื่อสร้างรายชื่อ
หากคุณต้องการอ้างถึงองค์ประกอบใด ๆ จากรายการ ดัชนีจะถูกใช้ แต่ละองค์ประกอบมีดัชนีของตัวเอง
ดัชนีคือหมายเลขขององค์ประกอบในรายการ
หากคุณต้องการเติมรายการด้วยองค์ประกอบที่ซ้ำกันและซ้ำซากจำเจ จะใช้สัญลักษณ์ * ตัวอย่างเช่น คุณต้องเพิ่มตัวเลขที่เหมือนกันสามตัวในรายการ: [100] * 3
ฟังก์ชั่นรายการ
ฟังก์ชั่น – นี่อาจเป็นข้อได้เปรียบหลักของ Python เหนือภาษาโปรแกรมอื่นๆ ฟังก์ชันพื้นฐานในตัวสามารถใช้กับรายการได้
พิจารณาความนิยมสูงสุดของพวกเขา:
- รายการ (ช่วง ( )) – ถ้างานคือการสร้างรายการตามลำดับ ฟังก์ชัน range จะถูกใช้ ฟังก์ชั่นนี้มีรูปแบบดังต่อไปนี้:
- ช่วง(สิ้นสุด). ใช้เมื่อจำเป็นต้องสร้างรายการจากศูนย์เป็นจำนวนจำกัด
- ช่วง (เริ่มต้น, สิ้นสุด). มีการระบุทั้งหมายเลขเริ่มต้นและหมายเลขสิ้นสุด
- ช่วง (เริ่มต้น, สิ้นสุด, ขั้นตอน) พารามิเตอร์ขั้นตอนระบุลักษณะการเลือก ตัวอย่างเช่น หากคุณต้องการเลือกทุก ๆ ตัวเลขที่ห้าจากลำดับตั้งแต่ 1 ถึง 21 รายการผลลัพธ์จะมีลักษณะดังนี้: [10,15, 20]
ฟังก์ชัน range สามารถลดจำนวนโค้ดได้อย่างมาก
- แฟลกซ์ (รายการ) - ช่วยให้คุณค้นหาจำนวนองค์ประกอบที่อยู่ในรายการ
- เรียงลำดับ (รายการ, [คีย์]) – เรียงลำดับวัตถุในรายการจากน้อยไปมาก
- สูงสุด (รายการ) – ส่งกลับองค์ประกอบที่ใหญ่ที่สุด
- นาที (รายการ) – ฟังก์ชันตรงข้าม – ให้คุณส่งคืนองค์ประกอบด้วยค่าต่ำสุด
คุณยังสามารถใช้ฟังก์ชันในตัวอื่นๆ ได้:
- รายการ (ทูเพิล) - แปลงวัตถุทูเพิลเป็นรายการ
- ผลรวม (รายการ) – รวมองค์ประกอบทั้งหมดในรายการ หากค่าทั้งหมดเป็นตัวเลข ใช้กับทั้งจำนวนเต็มและทศนิยม อย่างไรก็ตาม เธอไม่ได้ทำให้ถูกต้องเสมอไป หากมีองค์ประกอบที่ไม่ใช่ตัวเลขในรายการ ฟังก์ชันจะแสดงข้อผิดพลาด: “TypeError: ประเภทตัวถูกดำเนินการที่ไม่รองรับสำหรับ +: 'int' และ 'str'”
วิธีการลงรายการ
กลับไปที่รายการของเราที่จะซื้อในร้านค้าและเรียกมันว่ารายการร้านค้า:
รายชื่อร้านค้า = []
ต่อไป ให้พิจารณาวิธีการลงรายการ:
- ต่อท้าย (รายการ) – ด้วยความช่วยเหลือ คุณสามารถเพิ่มองค์ประกอบในรายการ ในกรณีนี้ องค์ประกอบใหม่จะอยู่ที่ส่วนท้าย
มากรอกรายชื่อใหม่ของเราด้วยผลิตภัณฑ์ที่เหมาะสม:
shoplist.append(ขนมปัง)
shoplist.append(นม)
- รายการ.ขยาย(A) - เพิ่ม "รายการในรายการ" คุณลักษณะนี้ช่วยประหยัดเวลาเนื่องจากคุณสามารถเพิ่มหลายรายการพร้อมกันได้ สมมติว่าเรามีรายชื่อผลไม้อยู่แล้ว เราต้องเพิ่มลงในรายการหลัก
shoplist.extend(ผลไม้)
- แทรก (ดัชนี รายการ) – แทรกองค์ประกอบด้วยดัชนีที่ระบุค่าที่ระบุก่อนดัชนีที่ระบุ
- นับ(รายการ) – แสดงจำนวนการทำซ้ำขององค์ประกอบ
- รายการ.ลบ(ชิ้น) เป็นฟังก์ชันตรงข้าม รายการ.ต่อท้าย (x). สามารถใช้เพื่อลบองค์ประกอบใด ๆ หากรายการที่เลือกไม่อยู่ในรายการ จะมีการรายงานข้อผิดพลาด
- ป๊อป ([ดัชนี]) – ลบองค์ประกอบที่เลือกและส่งคืนในลักษณะเดียวกัน หากไม่ได้ระบุองค์ประกอบ องค์ประกอบสุดท้ายจะถูกลบออกจากรายการ
- เรียงลำดับ ([คีย์]) – วางองค์ประกอบในรายการโดยเรียงลำดับจากน้อยไปมาก แต่คุณยังสามารถระบุฟังก์ชันได้อีกด้วย
- ดัชนี(รายการ) – แสดงดัชนีขององค์ประกอบที่เลือกครั้งแรก
- คุณสามารถขยายรายการนั่นคือสะท้อนองค์ประกอบทั้งหมดโดยใช้วิธีการ ย้อนกลับ (รายการ). องค์ประกอบสุดท้ายกลายเป็นองค์ประกอบแรก องค์ประกอบสุดท้ายกลายเป็นองค์ประกอบที่สอง เป็นต้น
- สำเนาของรายการถูกสร้างขึ้นด้วยคำสั่ง คัดลอก (รายการ).
- สำเนาลึก (รายการ) - การทำสำเนาแบบลึก
- ลบองค์ประกอบรายการทั้งหมดโดยใช้เมธอด ล้าง(รายการ).
เป็นที่น่าสังเกตว่าเมธอดรายการต่างจากเมธอดสตริงเนื่องจากเปลี่ยนรายการทันที นั่นคือ ไม่จำเป็นต้องส่งคืนผลลัพธ์ของการดำเนินการ
>>> l = [1, 2, 3, 5, 7] >>> l.sort() >>> l [1, 2, 3, 5, 7] >>> l = l.sort() > >> พิมพ์(ล) ไม่มี
ต่อไปนี้คือตัวอย่างการทำงานกับรายการ:
>>> a = [66.25, 333, 333, 1, 1234.5] >>> พิมพ์(a.count(333), a.count(66.25), a.count('x')) 2 1 0 >>> a.insert(2, -1) >>> a.append(333) >>> a [66.25, 333, -1, 333, 1, 1234.5, 333] >>> a.index(333) 1 >> > a.remove(333) >>> a [66.25, -1, 333, 1, 1234.5, 333] >>> a.reverse() >>> a [333, 1234.5, 1, 333, -1, 66.25 ] >>> a.sort() >>> a [-1, 1, 66.25, 333, 333, 1234.5]