Cấu trúc dữ liệu Tuple

Một phần của tài liệu [GiaoTrinh] - PythonCoBan_v4_32bit (Trang 97 - 99)

Python hỗ trợ một cấu trúc dữ liệu tương tự với List, có tên là Tuple. Tuy nhiên, khác với list, Tuple là một danh sách bất biến. Nghĩa là ngay sau khi khởi tạo Tuple, chúng ta khơng thể thay đổi nó.

3.1 Khởi tạo và truy xuất các phần tử trong Tuple

Tuple được khai báo trên Python bằng chuỗi kí tự (), ở giữa là các phần tử của mảng, cách nhau bằng dấu phẩy (,). Chúng ta có thể bỏ dấu ngoặc đơn nếu muốn, nhưng nên thêm nó vào cho code rõ ràng hơn. Ngồi ra, tuple khơng bị giới hạn số lượng phần tử và có thể có nhiều kiểu dữ liệu khác nhau như số nguyên, số thập phân, list, string,...

Tuy nhiên, nếu tạo tuple theo cách thông thường là cho phần tử đó vào trong cặp dấu () là chưa đủ, cần phải thêm dấu phẩy để chỉ ra rằng, đây là tuple. Hãy xem ví dụ sau đây

1 a = (1 , 2 , 3 , 4)

2 # t u p l e co the khoi tao ma k h o n g can dau () 3 b = 5 ,6 ,7 ,8

4 # luu y khi khoi tao t u p l e

5 c = (" Xin chao ") # kieu du lieu cua c la str

6 d = (" Xin chao ",) # kieu du lieu cua d moi la t u p l e Chương trình 10.6: Cách để khởi tạo tuple

Tương tự như list, để truy xuất các phần tử bên trong tuple, chúng ta sử dụng toán tử index [] với index bắt đầu bằng 0.

1 a = (1 , 2 , 3 , 4)

2 p r i n t(" Phan tu thu nhat : ", a [0])

3 p r i n t(" Phan tu thu hai : ", a [1])

Chương trình 10.7: Truy xuất các phần tử trong tuple

3.2 Các thao tác với Tuple

Chúng ta có thể sử dụng tất cả các kỹ thuật, các hàm tương tự với cách chúng ta sử dụng với list. Tuy nhiên, tuple là một danh sách bất biến, không thể thay đổi khi đã tạo ra nên chúng ta sẽ loại trừ những hàm tác động thay đổi nội dung.

Ví dụ: chúng ta có thể sử dụng hàm len() để duyệt các phần tử trong tuple, hoặc index(x) để trả về giá trị index của phần tử x đầu tiên mà nó gặp trong tuple: 1 a = (1 , 2 , 3 , 4)

2 p r i n t( a . i n d e x (1) ) # ket qua la 0 3 N = len( a )

4 for i in r a n g e(0 , N ) :

5 p r i n t( a [ i ])

Chương trình 10.8: Duyệt các phần tử trong tuple

Còn lại, tất cả các phương thức như: append(), insert(), pop(), extend(), remove(), sort(), reverse(),... không sử dụng được với tuple.

Tuy nhiên, nếu bản thân các phần tử đó là một kiểu dữ liệu có thể thay đổi (như list chẳng hạn) thì các phần tử lồng nhau có thể được thay đổi. Cụ thể, hãy xem ví dụ minh họa bên dưới:

1 a = (1 , 2 , 3 , [4 ,5])

2 # Neu thay doi gia tri cua t u p l e bang cach gan a [0] = 7 thi se bao loi

3 # Chi co the thay doi gia tri cua cac phan tu t r o n g list [4 ,5] , vi list co the thay doi

4 a [ 3 ] [ 0 ] = 5;

5 p r i n t( a )

Chương trình 10.9: Thay đổi các giá trị bên trong tuple

3.3 Khi nào sử dụng Tuple

Tuple có những hạn chế nhất định như khi tạo ra thì khơng thể thay đổi được, nhưng cũng có những ưu điểm đáng kể đến như sau:

• Thứ nhất, tuple có tốc độ xử lý nhanh hơn list.Ngồi ra, khi chúng ta muôn định nghĩa một tập các giá trị là hằng số và sau đó duyệt qua tập hợp này thì nên chọn tuple.

• Sử dụng Tuple giúp code an tồn hơn, bởi vì đặc tính của tuple giúp cho dữ liệu không thể thay đổi. Do vậy nên lựa chọn tuple cho những dữ liệu dạng hằng số, dữ liệu không thay đổi theo thời gian.

Một phần của tài liệu [GiaoTrinh] - PythonCoBan_v4_32bit (Trang 97 - 99)

Tải bản đầy đủ (PDF)

(138 trang)