Collection In Python : ทุกสิ่งที่คุณจำเป็นต้องรู้
เผยแพร่แล้ว: 2021-04-09Python เป็นภาษาโปรแกรมที่ทรงพลัง เป็นแบบโมดูลาร์และเป็นที่รู้จักในด้านความเรียบง่าย การนำกลับมาใช้ใหม่ได้ และการบำรุงรักษา ในการเขียนโปรแกรมแบบโมดูลาร์ งานเขียนโปรแกรมขนาดใหญ่และซับซ้อนจะถูกแบ่งออกเป็นโมดูลที่เล็กกว่า
บทความนี้กล่าวถึงการรวบรวมโมดูล ใน Python คอลเล็กชันช่วยปรับปรุงฟังก์ชันการทำงานและเป็นทางเลือกแทน dict, list, set และ tuple container ในตัวของ Python
'รายการ Python, tuples, ชุดและพจนานุกรมเป็นโครงสร้างข้อมูลที่ผู้ใช้กำหนดและแต่ละรายการมีข้อดีและข้อเสียของตัวเอง'
สารบัญ
โมดูลหลาม
โมดูลคือไฟล์ที่มีคำจำกัดความและคำสั่งของ Python ที่ใช้ชุดของฟังก์ชัน คำสั่งนำเข้าใช้เพื่อนำเข้าโมดูลจากโมดูลอื่น Python มีโมดูลในตัวหลายโมดูล
มาที่ประเด็นสำคัญของบทความและเรียนรู้ คอลเล็กชันโมดูลใน Python โดยละเอียด
คอลเลกชันใน Python
การ รวบรวมใน Python คือคอนเทนเนอร์ที่เก็บคอลเล็กชันของข้อมูล List, set, tuple, dict, ฯลฯ เป็นคอลเล็กชั่น inbuilt ใน Python มีโมดูลการรวบรวมหกโมดูลใน Python ที่มีโครงสร้างข้อมูลเพิ่มเติมสำหรับการจัดเก็บการรวบรวมข้อมูล โมดูล Python เหล่านี้ปรับปรุงการทำงานของคอลเลกชันของคอนเทนเนอร์ในตัว
ตอนนี้เราจะพูดถึงคอนเทนเนอร์ต่าง ๆ ที่ คอลเลกชันมีให้ใน โมดูล Python
1. OrderedDict
OrderedDict() ทำงานคล้ายกับอ็อบเจกต์พจนานุกรมซึ่งคีย์จะรักษาลำดับในการแทรก หากคุณต้องการแทรกคีย์อีกครั้ง ค่าก่อนหน้าจะถูกเขียนทับ และตำแหน่งของคีย์จะไม่เปลี่ยนแปลง
ตัวอย่าง:
นำเข้า OrderedDict จากคอลเลกชัน
d1=collections.OrderedDict()
d1['A']=1
d1['B']=2
d1['C']=3
d1['D']=4
สำหรับ x,v ใน d1.items():
พิมพ์ (x,v)
เอาท์พุท:
A 1
บี2
C 3
D 4
2. เดค ()
Python deque() เป็นรายการที่ปรับให้เหมาะสมที่เพิ่มและลบรายการออกจากสุดขั้วทั้งสอง
ตัวอย่าง:
นำเข้า deque จากคอลเลกชัน
list1 = [“a”,”b”,”c”]
deq = deque (รายการ1)
พิมพ์ (เด็ค)
เอาท์พุท:
deque(['a', 'b', 'c'])
3. เคาน์เตอร์
ตัวนับเป็นกลุ่มย่อยของวัตถุพจนานุกรมที่นับวัตถุที่แฮชได้ ฟังก์ชัน ตัว นับ ใช้อินพุต iterable เป็นอาร์กิวเมนต์และส่งกลับเอาต์พุตเป็นพจนานุกรม คีย์คือองค์ประกอบแบบ iterable และค่าคือจำนวนครั้งทั้งหมดที่มีองค์ประกอบอยู่ใน iterable
ตัวอย่าง:
นำเข้าเคาน์เตอร์จากคอลเลกชัน
c = ตัวนับ ()
รายการ1 = [1,2,3,4,5,7,8,5,9,6,10]
เคาน์เตอร์(รายการ1)
เคาน์เตอร์({1:5,2:4})
รายการ 1 = [1,2,4,7,5,1,6,7,6,9,1]
c = ตัวนับ (รายการ1)
พิมพ์ (ค[1])
เอาท์พุท:
3
ฟังก์ชั่น เคาน์เตอร์ เพิ่มเติม
1. องค์ประกอบ () ฟังก์ชั่น
ฟังก์ชัน elements() ส่งคืนรายการองค์ประกอบที่มีอยู่ใน วัตถุ ตัว นับ
ตัวอย่าง:
c = ตัวนับ({1:4,2:3})
พิมพ์(รายการ(c.elements()))
เอาท์พุท:
[1,1,1,1,2,2,2]
ที่นี่วัตถุตัว นับ ถูกสร้างขึ้นโดยใช้อาร์กิวเมนต์พจนานุกรม จำนวนการนับสำหรับ 1 คือ 4 และสำหรับ 2 คือ 3 ฟังก์ชัน elements() ถูกเรียกโดย วัตถุ c ส่งคืนตัววนซ้ำ
2. most_common() ฟังก์ชั่น
ฟังก์ชัน Counter() Python จะส่งกลับพจนานุกรมที่ไม่เรียงลำดับ ในขณะที่ ฟังก์ชัน most_common() จะเรียงลำดับตามจำนวนองค์ประกอบที่นับ
ตัวอย่าง:
รายการ = [1,2,3,4,5,5,5,7,3]
c = ตัวนับ (รายการ)
พิมพ์(c.most_common())
เอาท์พุท:
[((5,3), (1,1),(2,1),(3,2),(4,1), (7,1))]
ที่นี่ ฟังก์ชัน most_common จะส่งคืนรายการที่เรียงลำดับตามจำนวนองค์ประกอบ 5 มาสามครั้ง; ดังนั้นมันจึงมาก่อนเป็นองค์ประกอบของรายการ
3. ลบ() ฟังก์ชัน
subtract() พิจารณา อาร์กิวเมนต์ iterable หรือ mapping และลบการนับองค์ประกอบด้วยอาร์กิวเมนต์นั้น
ตัวอย่าง:
c = ตัวนับ ({1:2,2:3})
เอาท์พุท= {1:1,2:1}
ค. ลบ (เอาท์พุท)
พิมพ์ (ค)
เอาท์พุท:
เคาน์เตอร์({1:1,2:2})
4. วัตถุแผนที่ลูกโซ่
คลาส Chainmap จัดกลุ่มพจนานุกรมหลายชุดเพื่อสร้างรายการเดียว พจนานุกรมที่เชื่อมโยงเป็นแบบสาธารณะและสามารถเข้าถึงได้โดยแอตทริบิวต์แผนที่
ตัวอย่าง:
นำเข้า chainmap จากคอลเลกชัน
dict1 = { 'w' : 1, 'x' : 2 }
dict2 = {'y' : 3. 'z': 4 }
chain_map = ChainMap (dict1,dict2)
พิมพ์ (chain_map.maps)
เอาท์พุท:
[{'x' : 2, 'w' :1}, {'y' : 3, 'x':4}]
5. เนมทูเพิล
ฟังก์ชัน namedtuple() ส่งคืนอ็อบเจ็กต์ tuple พร้อมชื่อสำหรับแต่ละตำแหน่งใน tuple ได้รับการแนะนำเพื่อขจัดปัญหาในการจดจำดัชนีของแต่ละฟิลด์ของวัตถุทูเพิล
ตัวอย่าง:
นำเข้า namedtuple จากคอลเลกชัน
นักเรียน = ชื่อทูเพิล ('นักเรียน', 'ชื่อ, นามสกุล, อายุ')
s1 = นักเรียน ('Tom', 'Alter', '12')
พิมพ์ (s1.ชื่อจริง)
เอาท์พุท:
นักเรียน(ชื่อ='ทอม' นามสกุล='แก้ไข' อายุ='12')
ในตัวอย่างนี้ คุณสามารถเข้าถึงฟิลด์ของอินสแตนซ์ของคลาสใดก็ได้
6. DefaultDict
Python defaultdict() เป็นวัตถุพจนานุกรมและเป็นคลาสย่อยของคลาส dict มันมีวิธีพจนานุกรมทั้งหมด แต่ใช้อาร์กิวเมนต์แรกเป็นชนิดข้อมูลเริ่มต้น มันแสดง ข้อผิดพลาด เมื่อคุณเข้าถึงคีย์ที่ไม่มีอยู่จริง
ตัวอย่าง:
นำเข้า defaultdict จากคอลเลกชัน
num = defaultdict(int)
num['one'] = 1
num['two'] = 2
พิมพ์ (จำนวน['สาม'])
เอาท์พุท:
0
บทสรุป
คอลเลคชันใน Python เป็นที่รู้จักเพื่อนำการปรับปรุงมาสู่โมดูลคอลเลกชั่น Python คอลเล็กชันเหล่านี้ได้รับการแนะนำใน Python เวอร์ชัน 2.4 สามารถคาดหวังการเปลี่ยนแปลงและการปรับปรุงมากมายในเวอร์ชันถัดๆ ไป ในบทความนี้ เราได้อธิบายหก คอลเลกชันที่มีอยู่ใน Python พร้อมตัวอย่างและวิธีการใช้งานในภาษา เป็นแนวคิดที่สำคัญที่สุดอย่างหนึ่งจากมุมมองของผู้เรียน
เรียนรู้ คอลเล็กชันใน Python ด้วย โปรแกรมเอกสิทธิ์เฉพาะ ของ upGrad เกี่ยวกับแอปพลิเค ชัน คอมพิวเตอร์ โปรแกรมนี้ครอบคลุมทักษะที่จำเป็นในการเข้าสู่อุตสาหกรรมไอที
หากคุณอยากเรียนรู้เกี่ยวกับ python, Data Science ให้ลองดูที่ IIIT-B & upGrad's Executive PG Program in Data Science ซึ่งสร้างขึ้นสำหรับมืออาชีพที่ทำงานและมีกรณีศึกษาและโครงการมากกว่า 10 แบบ, การประชุมเชิงปฏิบัติการเชิงปฏิบัติ, การให้คำปรึกษากับผู้เชี่ยวชาญในอุตสาหกรรม แบบตัวต่อตัวกับที่ปรึกษาในอุตสาหกรรม การเรียนรู้มากกว่า 400 ชั่วโมงและความช่วยเหลือด้านงานกับบริษัทชั้นนำ
เรียนรู้หลักสูตรวิทยาศาสตร์ข้อมูล ออนไลน์ จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว
Python มีประเภทข้อมูลการรวบรวมในตัวอยู่แล้ว 4 ประเภท เหล่านี้คือรายการ ทูเพิล พจนานุกรม และการตั้งค่า อย่างไรก็ตาม ที่เก็บข้อมูลเหล่านี้ใช้เพื่อวัตถุประสงค์ทั่วไป Python Dictionary หรือ "Dict" เป็นโครงสร้างข้อมูล inbuilt ของ Python ที่ใช้ในการเก็บคอลเลกชันขององค์ประกอบที่ไม่เรียงลำดับ โครงสร้างข้อมูลพจนานุกรมไม่เหมือนกับโครงสร้างข้อมูล Python อื่นๆ ที่เก็บค่าเดียว โครงสร้างข้อมูลพจนานุกรมเก็บคู่คีย์-ค่าโดยที่ทุกคีย์ไม่ซ้ำกัน ไม่จำลำดับการแทรกของคู่คีย์-ค่าและวนซ้ำผ่านคีย์ namedtuple ใน Python ดำเนินการต่างๆ ต่อไปนี้คือรายการของการดำเนินการทั่วไปบางส่วนที่ดำเนินการโดย namedtupleเหตุใดเราจึงต้องการโมดูลการรวบรวมใน Python
ประเด็นต่อไปนี้เน้นถึงข้อดีที่สำคัญของการใช้โมดูลการรวบรวมมากกว่าที่เก็บข้อมูลในตัว
โมดูลการรวบรวมมีเวอร์ชันเฉพาะของคอนเทนเนอร์เหล่านี้ เช่น namedtuple, OrderedDict, defaultdict, chainmap, counter และอื่นๆ อีกมากมาย
คอนเทนเนอร์เหล่านี้ได้รับการปรับให้เหมาะสมยิ่งขึ้น จึงเป็นทางเลือกที่ดีกว่าคอนเทนเนอร์ข้อมูลแบบเดิม เช่น รายการ ทูเพิล และชุด
โมดูลการรวบรวมมีประสิทธิภาพในการจัดการกับข้อมูลที่มีโครงสร้าง
ที่เก็บข้อมูลเช่น namedtuple ใช้หน่วยความจำน้อยลงและให้การดำเนินการที่ได้รับการปรับปรุงเพื่อจัดเก็บและจัดการข้อมูล อะไรคือความแตกต่างระหว่างพจนานุกรมและพจนานุกรมที่สั่งซื้อใน Python?
ในทางกลับกัน Ordered Dictionary หรือ OrderedDict จะคอยติดตามลำดับการแทรกของคู่คีย์-ค่า นอกจากนี้ยังใช้หน่วยความจำมากกว่าพจนานุกรมทั่วไปใน Python เนื่องจากมีการใช้งานรายการที่มีการเชื่อมโยงแบบทวีคูณ หากคุณลบและใส่คีย์เดิมเข้าไปใหม่ คีย์ดังกล่าวจะถูกแทรกในตำแหน่งเดิมเนื่องจาก OrderedDict จะจดจำลำดับการแทรก การดำเนินการต่าง ๆ ของชื่อtuple คืออะไร?
1. Access Operations: เข้าถึงโดยดัชนี: องค์ประกอบใน namedtuple สามารถเข้าถึงได้โดยดัชนีของพวกเขา ซึ่งแตกต่างจากพจนานุกรม การเข้าถึงด้วยชื่อคีย์: อีกวิธีหนึ่งในการเข้าถึงองค์ประกอบคือการใช้ชื่อคีย์
2. การดำเนินการแปลง: make(): ฟังก์ชันนี้ส่งคืน nametuple _asadict(): ฟังก์ชันนี้ส่งคืนพจนานุกรมที่เรียงลำดับซึ่งสร้างขึ้นจากค่าที่แมป ใช้ตัวดำเนินการ "**" (ดาวคู่): ฟังก์ชันนี้จะแปลงพจนานุกรม Python เป็นชื่อทูเพิล
3. การดำเนินการเพิ่มเติม: _fileds(): ฟังก์ชันนี้ส่งคืนชื่อคีย์ทั้งหมดของ namedtuple ที่กำหนด _replace(): ฟังก์ชันนี้ใช้ชื่อคีย์เป็นอาร์กิวเมนต์และเปลี่ยนค่าที่แมปกับคีย์