[MẸO] Python: So sánh Tuple và List
By JoeVu, at: 17:06 Ngày 05 tháng 10 năm 2023
Thời gian đọc ước tính: __READING_TIME__ minutes
![[TIPs] Python: Compare Tuple and List](/media/filer_public_thumbnails/filer_public/ca/4e/ca4e70d6-3a85-4b47-9067-af7652fdca83/python_tuples_vs_lists.png__1500x900_crop_subsampling-2_upscale.png)
![[TIPs] Python: Compare Tuple and List](/media/filer_public_thumbnails/filer_public/ca/4e/ca4e70d6-3a85-4b47-9067-af7652fdca83/python_tuples_vs_lists.png__400x240_crop_subsampling-2_upscale.png)
Trong Python, cả tuple và list đều được sử dụng để lưu trữ tập hợp các phần tử, nhưng chúng có một số điểm khác biệt chính. Dưới đây là so sánh giữa tuple và list:
-
Tính bất biến:
- List: List là có thể thay đổi, nghĩa là bạn có thể thay đổi nội dung của chúng bằng cách thêm hoặc xóa phần tử, hoặc bằng cách sửa đổi các phần tử hiện có.
- Tuple: Tuple là bất biến, nghĩa là một khi chúng được tạo ra, các phần tử của chúng không thể được thay đổi, thêm hoặc xóa.
- List: List là có thể thay đổi, nghĩa là bạn có thể thay đổi nội dung của chúng bằng cách thêm hoặc xóa phần tử, hoặc bằng cách sửa đổi các phần tử hiện có.
-
Cú pháp:
- List: Được định nghĩa bằng dấu ngoặc vuông
[]
, ví dụ:my_list = [1, 2, 3]
.
- Tuple: Được định nghĩa bằng dấu ngoặc tròn
()
, ví dụ:my_tuple = (1, 2, 3)
.
- List: Được định nghĩa bằng dấu ngoặc vuông
-
Hiệu suất:
- List: Do tính chất có thể thay đổi, list có thể yêu cầu nhiều bộ nhớ hơn và có thể có hiệu suất chậm hơn một chút so với tuple.
- Tuple: Tuple thường hiệu quả về bộ nhớ hơn và có thể cung cấp hiệu suất tốt hơn cho một số thao tác nhất định do tính bất biến của chúng.
- List: Do tính chất có thể thay đổi, list có thể yêu cầu nhiều bộ nhớ hơn và có thể có hiệu suất chậm hơn một chút so với tuple.
-
Trường hợp sử dụng:
- List: Sử dụng list khi bạn cần một tập hợp có thể được sửa đổi, chẳng hạn như khi bạn muốn thêm hoặc xóa phần tử một cách động.
- Tuple: Sử dụng tuple khi bạn muốn tạo một tập hợp các phần tử nên giữ nguyên trong suốt quá trình thực thi chương trình. Tuple phù hợp với các trường hợp cần tính bất biến, như khi định nghĩa khóa cho từ điển.
- List: Sử dụng list khi bạn cần một tập hợp có thể được sửa đổi, chẳng hạn như khi bạn muốn thêm hoặc xóa phần tử một cách động.
-
Phương thức:
- List: List có nhiều phương thức tích hợp sẵn hơn để thêm, xóa và thao tác các phần tử, chẳng hạn như
append()
,extend()
,remove()
vàpop()
.
- Tuple: Tuple có ít phương thức hơn do tính bất biến của chúng, nhưng chúng vẫn hỗ trợ các thao tác phổ biến như lập chỉ mục và cắt lát.
- List: List có nhiều phương thức tích hợp sẵn hơn để thêm, xóa và thao tác các phần tử, chẳng hạn như
-
Lặp:
- List: List có thể được lặp lại bằng vòng lặp
for
, và các phần tử có thể được sửa đổi trong quá trình lặp.
- Tuple: Tuple cũng có thể được lặp lại, nhưng vì chúng bất biến nên các phần tử của chúng không thể được sửa đổi trong quá trình lặp.
- List: List có thể được lặp lại bằng vòng lặp
Dưới đây là một ví dụ ngắn:
# Ví dụ về List
my_list = [1, 2, 3]
my_list.append(4)
print(my_list) # Kết quả: [1, 2, 3, 4]
# Ví dụ về Tuple
my_tuple = (1, 2, 3)
# Dòng lệnh sau sẽ gây ra lỗi vì tuple là bất biến
# my_tuple.append(4)
Tóm lại, hãy chọn giữa tuple và list dựa trên việc bạn cần một tập hợp có thể thay đổi hay bất biến, và hãy xem xét các ảnh hưởng đến hiệu suất dựa trên các yêu cầu cụ thể của chương trình của bạn.