อะไรคือสิ่งที่ไม่แน่นอนและไม่เปลี่ยนแปลงใน Python?

เผยแพร่แล้ว: 2022-09-22

ใน Python ตัวแปรทุกตัวมีอินสแตนซ์ของอ็อบเจกต์ใด ๆ ในสองประเภท ได้แก่ เปลี่ยนแปลงได้และไม่เปลี่ยนรูปแบบ id อ็อบเจ็กต์ที่ไม่ซ้ำกันถูกกำหนดให้กับอ็อบเจ็กต์ทุกครั้งที่สร้างอินสแตนซ์ รันไทม์กำหนดประเภทอ็อบเจ็กต์และไม่สามารถเปลี่ยนแปลงได้ในภายหลัง

อย่างไรก็ตาม สิ่งที่เปลี่ยนแปลงได้นั้นเป็นวัตถุที่ไม่แน่นอน เมื่อเราพูดว่า mutable หมายความว่าสถานะอ็อบเจ็กต์ภายในสามารถกลายพันธุ์ได้ ในขณะเดียวกัน สถานะของวัตถุที่ไม่สามารถเปลี่ยนแปลงได้หลังจากการสร้างนั้นเป็นวัตถุที่ไม่เปลี่ยนรูป ทั้งสถานะที่เปลี่ยนแปลงได้และเปลี่ยนแปลงไม่ได้นั้นเป็นส่วนสำคัญในโครงสร้างข้อมูลของ Python

คุณลักษณะของการเปลี่ยนแปลงของวัตถุใน Python ทำให้เป็นภาษาที่พิมพ์แบบไดนามิก Mutable และ Immutable ใน Python นั้นค่อนข้างจำเป็นในฐานะแนวคิด แต่มักจะสับสนเนื่องจากลักษณะอกรรมกริยาของการไม่เปลี่ยนรูป

มาหาข้อมูลทั้งหมดเกี่ยวกับพวกเขาและความแตกต่างที่สำคัญ

ดูหลักสูตรออนไลน์ด้านวิทยาศาสตร์ข้อมูลเพื่อเพิ่มทักษะให้กับตัวคุณเอง

สารบัญ

ทักษะด้านวิทยาศาสตร์ข้อมูลชั้นนำเพื่อเรียนรู้เพื่อเพิ่มทักษะ

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

สถานะที่ไม่แน่นอนใน Python

คำว่า 'กลายพันธุ์' แปลตรงตัวว่า 'เปลี่ยนแปลงได้' หรือบางอย่างที่สามารถ 'กลายพันธุ์' ได้ มันกำหนดอ็อบเจ็กต์ที่เปิดกว้างต่อการเปลี่ยนแปลง และใน Python คำว่า 'ไม่แน่นอน' เกี่ยวข้องกับความสามารถของออบเจกต์ในการเปลี่ยนแปลงค่า ออบเจ็กต์เหล่านี้มักจะเก็บการรวบรวมข้อมูลและมีรายการประเภท ชุด พจนานุกรม และคลาสที่กำหนดโดยผู้ใช้ในตัว

สถานะคำจำกัดความที่ไม่เปลี่ยนรูปใน Python

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

วัตถุใน Python

ก่อนที่เราจะเจาะลึกถึงความเปลี่ยนแปลงและไม่เปลี่ยนรูปแบบใน Python ให้มาเรียนรู้กันก่อนว่าวัตถุคืออะไร ใน Python ทุกสิ่งถือเป็นอ็อบเจกต์ และแต่ละอ็อบเจ็กต์มีสามแอตทริบิวต์:

  • ข้อมูลประจำตัว: หมายถึงที่อยู่ของวัตถุในหน่วยความจำของคอมพิวเตอร์
  • Type : หมายถึงประเภทวัตถุที่สร้างขึ้น ตัวอย่างเช่น จำนวนเต็ม สตริง รายการ และอื่นๆ
  • ค่า : หมายถึงค่าที่อ็อบเจ็กต์เก็บไว้ ตัวอย่างเช่น List=[5,6,7] จะเก็บตัวเลข 5, 6 และ 7

แม้ว่า ID และ Type ของอ็อบเจ็กต์จะไม่เปิดให้เปลี่ยนแปลงหลังจากการสร้าง ค่าก็เปิดกว้างสำหรับการเปลี่ยนแปลงสำหรับอ็อบเจ็กต์ Mutable

วัตถุที่ไม่แน่นอนใน Python

วัตถุที่ไม่แน่นอนคือวัตถุใน Python ที่สามารถกลายพันธุ์หรือเปลี่ยนแปลงได้ รหัสช่วยสอนการใช้งานวัตถุเหล่านี้ได้ดีขึ้น ดังนั้น ให้เราดูโค้ดสองสามตัวและพยายามทำความเข้าใจอ็อบเจกต์ที่ไม่แน่นอนให้ดีขึ้น:

  • สำหรับทำรายการที่มีชื่อผลไม้

ผลไม้= ['มะม่วง', 'มะละกอ', 'ส้ม']

  • สำหรับพิมพ์องค์ประกอบจากรายการผลไม้ หารด้วยเครื่องหมายจุลภาค & เว้นวรรค

สำหรับผลไม้ในผลไม้:

พิมพ์(ผลไม้, end=', ')

ผลลัพธ์ [1]: มะม่วง มะละกอ ส้ม

  • สำหรับพิมพ์ตำแหน่งวัตถุที่สร้างขึ้นในที่อยู่หน่วยความจำในรูปแบบเลขฐานสิบหก

สำรวจหลักสูตรออนไลน์วิทยาศาสตร์ข้อมูลยอดนิยมของเรา

Executive Post Graduate Program in Data Science จาก IIITB หลักสูตรประกาศนียบัตรวิชาชีพด้านวิทยาศาสตร์ข้อมูลเพื่อการตัดสินใจทางธุรกิจ วิทยาศาสตรมหาบัณฑิต สาขา Data Science จาก University of Arizona
หลักสูตรประกาศนียบัตรขั้นสูงด้าน Data Science จาก IIITB หลักสูตรประกาศนียบัตรวิชาชีพด้าน Data Science และ Business Analytics จาก University of Maryland หลักสูตรออนไลน์วิทยาศาสตร์ข้อมูล

พิมพ์(เลขฐานสิบหก(รหัส(ผลไม้)))

เอาต์พุต [2]: 0x1691d7de8c8

  • เพิ่มผลไม้ใหม่ในรายการ 'ผลไม้'

fruit.append('องุ่น')

  • สำหรับพิมพ์องค์ประกอบที่อยู่ในรายการ 'ผลไม้' คั่นด้วยเครื่องหมายจุลภาค & ช่องว่าง

สำหรับผลไม้ในผลไม้:

พิมพ์(ผลไม้, end=', ')

ผลผลิต [3]: มะม่วง มะละกอ ส้ม องุ่น

  • สำหรับการพิมพ์ตำแหน่งวัตถุที่สร้างในที่อยู่หน่วยความจำในรูปแบบเลขฐานสิบหก

พิมพ์(เลขฐานสิบหก(รหัส(ผลไม้)))

เอาท์พุต [4]: ​​0x1691d7de8c8

ตัวอย่างแสดงให้เห็นว่า 'ผลไม้' สถานะภายในของวัตถุสามารถเปลี่ยนแปลงได้อย่างง่ายดายโดยการเพิ่มผลไม้อีกหนึ่งอย่าง 'องุ่น' เข้าไป อย่างไรก็ตาม ที่อยู่หน่วยความจำของวัตถุยังคงเหมือนเดิม พิสูจน์ว่าไม่จำเป็นต้องสร้างวัตถุใหม่ แต่วัตถุเดียวกันสามารถเปลี่ยนแปลงหรือกลายพันธุ์ได้ ตัวอย่างนี้แสดงว่าอ็อบเจ็กต์ที่มีชื่อตัวแปรอ้างอิง 'fruits' ซึ่งเป็นประเภทรายการ เปลี่ยนแปลงได้

วัตถุที่ไม่เปลี่ยนรูปใน Python

วัตถุที่ไม่เปลี่ยนรูปใน Python คือวัตถุที่ไม่สามารถเปลี่ยนค่าได้ ให้เราทำตามโค้ดง่ายๆ เพื่อทำความเข้าใจว่าอ็อบเจกต์ที่ไม่เปลี่ยนรูปคืออะไรและทำงานอย่างไร รหัสได้รับด้านล่าง:-

  • สำหรับสร้างทูเพิลที่มีชื่อภาษาอังกฤษว่า months

เดือน = 'มกราคม', 'กุมภาพันธ์', 'มีนาคม', 'เมษายน', 'พฤษภาคม', 'มิถุนายน', 'กรกฎาคม', 'สิงหาคม'

  • สำหรับพิมพ์องค์ประกอบของเดือนทูเพิล

พิมพ์ (เดือน)

ผลลัพธ์ [1]: ('มกราคม', 'กุมภาพันธ์', 'มีนาคม', 'เมษายน', 'พฤษภาคม', 'มิถุนายน', 'กรกฎาคม', 'สิงหาคม')

  • สำหรับพิมพ์ตำแหน่งวัตถุซึ่งสร้างขึ้นในที่อยู่หน่วยความจำในรูปแบบเลขฐานสิบหก

พิมพ์(เลขฐานสิบหก(รหัส(เดือน)))

เอาท์พุต [2]: 0x1691cc35090

  • สิ่งสำคัญคือต้องสังเกตว่าสิ่งอันดับจะไม่เปลี่ยนรูป ดังนั้นจึงไม่สามารถรวมองค์ประกอบใหม่เพิ่มเติมได้ ดังนั้น คุณต้องใช้การรวมของทูเพิลกับตัวดำเนินการ # + เพื่อเพิ่มเดือนจินตภาพใหม่ใน 'เดือน' ทูเปิล

เดือน += 'Pythonuary'

  • สำหรับการพิมพ์องค์ประกอบของทูเพิล 'เดือน'

พิมพ์ (เดือน)

ผลลัพธ์ [3]: ('มกราคม', 'กุมภาพันธ์', 'มีนาคม', 'เมษายน', 'พฤษภาคม', 'มิถุนายน', 'กรกฎาคม', 'สิงหาคม', 'Pythonuary')

  • สำหรับการพิมพ์ตำแหน่งวัตถุที่สร้างในที่อยู่หน่วยความจำในรูปแบบเลขฐานสิบหก

พิมพ์(เลขฐานสิบหก(รหัส(เดือน)))

เอาท์พุต [4]: ​​0x1691cc8ad68

อ่านบทความวิทยาศาสตร์ข้อมูลยอดนิยมของเรา

เส้นทางอาชีพ Data Science: คู่มืออาชีพที่ครอบคลุม การเติบโตของอาชีพ Data Science: อนาคตของการทำงานอยู่ที่นี่ เหตุใด Data Science จึงมีความสำคัญ 8 วิธีที่ Data Science นำคุณค่ามาสู่ธุรกิจ
ความเกี่ยวข้องของวิทยาศาสตร์ข้อมูลสำหรับผู้จัดการ แผ่นโกงวิทยาศาสตร์ข้อมูลขั้นสูงสุดที่นักวิทยาศาสตร์ข้อมูลทุกคนควรมี 6 เหตุผลที่คุณควรเป็นนักวิทยาศาสตร์ข้อมูล
วันหนึ่งในชีวิตของ Data Scientist: พวกเขาทำอะไร? Myth Busted: Data Science ไม่ต้องการการเข้ารหัส Business Intelligence vs Data Science: อะไรคือความแตกต่าง?

ตัวอย่างนี้พิสูจน์ให้เห็นว่าชื่อตัวแปรสามารถใช้อ้างอิงอ็อบเจ็กต์ได้ง่าย ซึ่งเป็น tuple ชนิดหนึ่งที่ประกอบด้วยองค์ประกอบแปดตัว อย่างไรก็ตาม ID ตำแหน่งหน่วยความจำของ tuple เก่าและใหม่ไม่เหมือนกัน ดังนั้นสถานะภายใน 'เดือน' ของวัตถุจึงไม่สามารถเปลี่ยนแปลงได้ ดังนั้นโปรแกรมจัดการโปรแกรม Python ได้สร้างวัตถุใหม่ในที่อยู่หน่วยความจำ นอกจากนี้ ชื่อตัวแปร 'เดือน' ยังอ้างอิงวัตถุใหม่ที่มีองค์ประกอบเก้าอย่าง ดังนั้น การพิสูจน์ว่าทูเพิล ซึ่งเป็นอ็อบเจกต์ที่มีชื่อตัวแปรอ้างอิง 'เดือน' เป็นอ็อบเจกต์ที่ไม่เปลี่ยนรูป

บทสรุป

ออบเจ็กต์ที่ไม่แน่นอนจะใช้เป็นหลักในการอนุญาตการอัปเดตในอนาคต ในทางกลับกัน ความไม่เปลี่ยนรูปยังนำเสนอแอปพลิเคชั่นที่มีประสิทธิภาพและใช้งานได้จริงมากมายสำหรับงานที่มีความละเอียดอ่อนต่างๆ ในตำแหน่งที่เน้นเครือข่าย ทำให้สามารถประมวลผลแบบขนานได้ ออบเจ็กต์ที่ไม่เปลี่ยนรูป ปิดผนึกค่า และตรวจสอบให้แน่ใจว่าไม่มีเธรดใดเรียกใช้การเขียนทับ/อัปเดตข้อมูล เหมาะอย่างยิ่งสำหรับการเขียนรหัสถาวรที่ไม่ต้องการการเปลี่ยนแปลงในอนาคต

หากคุณเป็นโปรแกรมเมอร์มือใหม่หรือผู้คลั่งไคล้วิทยาศาสตร์ข้อมูล การเรียนรู้เกี่ยวกับวัตถุที่เปลี่ยนแปลงได้และไม่เปลี่ยนรูปใน Python จะช่วยพิสูจน์ให้คุณเลือกสาขานี้เป็นอาชีพของคุณได้ วิธีที่ดีที่สุดที่จะเรียนรู้เกี่ยวกับสิ่งเหล่านี้คือการลงทะเบียนสำหรับ Executive Post Graduate Program ใน Data Science บน upGrad

หลักสูตรนี้สร้างขึ้นภายใต้คำแนะนำของคณาจารย์ผู้เชี่ยวชาญ โดยให้ความรู้เชิงลึกเกี่ยวกับหัวข้อที่กำลังเป็นกระแสเพื่อเตรียมผู้เรียนหลายพันคนสำหรับอาชีพการงานในอนาคต

ไตรมาสที่ 1 อะไรคือความแตกต่างที่สำคัญระหว่าง mutable และ immutable ใน Python?

คำตอบ: สถานะหรือค่าของอ็อบเจ็กต์เปิดให้แก้ไขหลังจากสร้างใน mutable สถานะหรือค่าของอ็อบเจ็กต์ไม่เปิดให้แก้ไขหลังจากสร้างในอ็อบเจ็กต์ Mutable ที่ไม่เปลี่ยนรูปจะไม่ปลอดภัยต่อเธรด ออบเจ็กต์ที่ไม่เปลี่ยนรูปเป็นคลาสที่ไม่เปลี่ยนรูปแบบที่ปลอดภัยต่อเธรด ก่อนสร้างวัตถุที่ไม่เปลี่ยนรูป คุณต้องทำให้คลาสเป็นขั้นสุดท้ายก่อน

ไตรมาสที่ 2 ใน Python ประเภทข้อมูลที่เปลี่ยนแปลงและไม่เปลี่ยนแปลงคืออะไร

คำตอบ: ชนิดข้อมูลที่ไม่แน่นอนใน Python ได้แก่ list, set, dictionary และ user-defined class และชนิดข้อมูลที่ไม่เปลี่ยนรูป ได้แก่ int, decimal, float, bool, tuple, string และ range

ไตรมาสที่ 3 รายการเปลี่ยนแปลงได้ใน Python หรือไม่

คำตอบ: ใน Python รายการเป็นประเภทข้อมูลที่เปลี่ยนแปลงได้โดยมีองค์ประกอบที่แก้ไขได้ง่าย นอกจากนี้ คุณยังสามารถแทนที่แต่ละองค์ประกอบและแม้กระทั่งเปลี่ยนลำดับขององค์ประกอบหลังจากสร้างรายการ