Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ความแตกต่างระหว่าง List และ Tuple ใน Python

ในบทความนี้ เราจะทำความเข้าใจความแตกต่างระหว่าง List และ Tuple ใน Python

List และ Tuple เป็นโครงสร้างข้อมูล 2 แบบที่ใช้ใน Python ทั้งคู่ถูกใช้ในกรณีต่างกันเพื่อเก็บข้อมูลชนิดต่างๆ

List (รายการ)

มักเรียกว่า Sequence (ลำดับ) ถือเป็นหนึ่งใน Data Type ที่ใช้บ่อยที่สุด และได้รับการยกย่องให้กับความหลากหลาย (Versatility) สามารถสร้าง List ได้โดยการวาง Element ทั้งหมดไว้ใน Square Brackets [ ] และคั่น Element ด้วย Comma สามารถมี Element จำนวนเท่าไหร่ก็ได้ และสามารถเป็นชนิดต่างๆ ได้ (Integer, Float, String, ฯลฯ) ลักษณะสำคัญที่สุดของ List คือเป็น Mutable Structure คือสามารถเปลี่ยนแปลงได้โดยอ้างอิง List

ลองดูการสร้าง List ที่มี Heterogeneous Data Types:

ตัวอย่าง

my_list = [1.8, 'string', 34, 'a']
print(my_list)

ผลลัพธ์

[1.8, 'string', 34, 'a']

มีหลายวิธีในการเข้าถึงข้อมูลภายใน List

ลองดูการใช้ Indexing เข้าถึง Element:

ตัวอย่าง

my_list = [1.8, 'string', 34, 'a']
print("The second element is")
print(my_list[1])

ผลลัพธ์

The second element is
string

เรายังสามารถเข้าถึง Element จากช่วงหนึ่งไปอีกช่วงหนึ่งได้ เรียกว่า List Slicing ลองดูวิธีทำ:

ตัวอย่าง

my_list = [1.8, 'string', 34, 'a']
print("The elements within a certain range are")
print(my_list[1:4])

ผลลัพธ์

The elements within a certain range are
['string', 34, 'a']

เรายังสามารถเปลี่ยนค่าของ List ได้โดยทำ Indexing และกำหนดค่าใหม่ให้ Index นั้น ลองดูวิธีทำ:

ตัวอย่าง

my_list = [1.8, 'string', 34, 'a']
print("List before changes")
print(my_list)
my_list[1] = 'my_string'
print("List after changes")
print(my_list)

ผลลัพธ์

List before changes
[1.8, 'string', 34, 'a']
List after changes
[1.8, 'my_string', 34, 'a']

Tuple (ทูเพิล)

ตอนนี้มาทำความเข้าใจการทำงานของ Tuple Structure สร้างด้วย Parenthesis คือ () ลักษณะสำคัญของ Tuple คือเป็น Immutable คือ Element ที่กำหนดไว้ใน Tuple ไม่สามารถเปลี่ยนแปลงได้โดยการเข้าถึง Tuple สามารถมี Element จำนวนเท่าไหร่ก็ได้ และเป็นชนิดต่างๆ ได้เช่นกัน (Integer, Float, String, ฯลฯ)

หมายเหตุ: Tuple สร้างได้โดยไม่ใช้ Parenthesis แต่ถือเป็น Best Practice ที่ควรใช้ Parenthesis

ลองดูการสร้าง Tuple ที่มี Element เดียว:

ตัวอย่าง

my_tuple = ("hey",)
print("Creating a tuple with one element")
print(my_tuple)

ผลลัพธ์

("hello")

หมายเหตุ: การเข้าถึง Element ของ Tuple, Negative Indexing, และ List Slicing เหมือนกับ List ทุกประการ

หาก Tuple มี List อยู่ภายใน List นั้นสามารถเปลี่ยนแปลงได้ แต่ Element ที่อยู่ใน Tuple โดยตรง (ไม่อยู่ใน List) จะเปลี่ยนแปลงไม่ได้