Collection In Python : ทุกสิ่งที่คุณจำเป็นต้องรู้

เผยแพร่แล้ว: 2021-04-09

Python เป็นภาษาโปรแกรมที่ทรงพลัง เป็นแบบโมดูลาร์และเป็นที่รู้จักในด้านความเรียบง่าย การนำกลับมาใช้ใหม่ได้ และการบำรุงรักษา ในการเขียนโปรแกรมแบบโมดูลาร์ งานเขียนโปรแกรมขนาดใหญ่และซับซ้อนจะถูกแบ่งออกเป็นโมดูลที่เล็กกว่า

บทความนี้กล่าวถึงการรวบรวมโมดูล ใน 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

Python มีประเภทข้อมูลการรวบรวมในตัวอยู่แล้ว 4 ประเภท เหล่านี้คือรายการ ทูเพิล พจนานุกรม และการตั้งค่า อย่างไรก็ตาม ที่เก็บข้อมูลเหล่านี้ใช้เพื่อวัตถุประสงค์ทั่วไป
ประเด็นต่อไปนี้เน้นถึงข้อดีที่สำคัญของการใช้โมดูลการรวบรวมมากกว่าที่เก็บข้อมูลในตัว
โมดูลการรวบรวมมีเวอร์ชันเฉพาะของคอนเทนเนอร์เหล่านี้ เช่น namedtuple, OrderedDict, defaultdict, chainmap, counter และอื่นๆ อีกมากมาย
คอนเทนเนอร์เหล่านี้ได้รับการปรับให้เหมาะสมยิ่งขึ้น จึงเป็นทางเลือกที่ดีกว่าคอนเทนเนอร์ข้อมูลแบบเดิม เช่น รายการ ทูเพิล และชุด
โมดูลการรวบรวมมีประสิทธิภาพในการจัดการกับข้อมูลที่มีโครงสร้าง
ที่เก็บข้อมูลเช่น namedtuple ใช้หน่วยความจำน้อยลงและให้การดำเนินการที่ได้รับการปรับปรุงเพื่อจัดเก็บและจัดการข้อมูล

อะไรคือความแตกต่างระหว่างพจนานุกรมและพจนานุกรมที่สั่งซื้อใน Python?

Python Dictionary หรือ "Dict" เป็นโครงสร้างข้อมูล inbuilt ของ Python ที่ใช้ในการเก็บคอลเลกชันขององค์ประกอบที่ไม่เรียงลำดับ โครงสร้างข้อมูลพจนานุกรมไม่เหมือนกับโครงสร้างข้อมูล Python อื่นๆ ที่เก็บค่าเดียว โครงสร้างข้อมูลพจนานุกรมเก็บคู่คีย์-ค่าโดยที่ทุกคีย์ไม่ซ้ำกัน ไม่จำลำดับการแทรกของคู่คีย์-ค่าและวนซ้ำผ่านคีย์
ในทางกลับกัน Ordered Dictionary หรือ OrderedDict จะคอยติดตามลำดับการแทรกของคู่คีย์-ค่า นอกจากนี้ยังใช้หน่วยความจำมากกว่าพจนานุกรมทั่วไปใน Python เนื่องจากมีการใช้งานรายการที่มีการเชื่อมโยงแบบทวีคูณ หากคุณลบและใส่คีย์เดิมเข้าไปใหม่ คีย์ดังกล่าวจะถูกแทรกในตำแหน่งเดิมเนื่องจาก OrderedDict จะจดจำลำดับการแทรก

การดำเนินการต่าง ๆ ของชื่อtuple คืออะไร?

namedtuple ใน Python ดำเนินการต่างๆ ต่อไปนี้คือรายการของการดำเนินการทั่วไปบางส่วนที่ดำเนินการโดย namedtuple
1. Access Operations: เข้าถึงโดยดัชนี: องค์ประกอบใน namedtuple สามารถเข้าถึงได้โดยดัชนีของพวกเขา ซึ่งแตกต่างจากพจนานุกรม การเข้าถึงด้วยชื่อคีย์: อีกวิธีหนึ่งในการเข้าถึงองค์ประกอบคือการใช้ชื่อคีย์
2. การดำเนินการแปลง: make(): ฟังก์ชันนี้ส่งคืน nametuple _asadict(): ฟังก์ชันนี้ส่งคืนพจนานุกรมที่เรียงลำดับซึ่งสร้างขึ้นจากค่าที่แมป ใช้ตัวดำเนินการ "**" (ดาวคู่): ฟังก์ชันนี้จะแปลงพจนานุกรม Python เป็นชื่อทูเพิล
3. การดำเนินการเพิ่มเติม: _fileds(): ฟังก์ชันนี้ส่งคืนชื่อคีย์ทั้งหมดของ namedtuple ที่กำหนด _replace(): ฟังก์ชันนี้ใช้ชื่อคีย์เป็นอาร์กิวเมนต์และเปลี่ยนค่าที่แมปกับคีย์