Page 39 - Python Simple
P. 39

5. Cấu trúc dữ liệu                                              http://www.vithon.org/tutorial/2.5/node7.html



             5.3 Bộ và dãy



             Chúng ta đã thấy rằng danh sách và chuỗi có nhiều thuộc tính chung, như là có
             chỉ mục, và các toán tử cắt miếng. Chúng là hai ví dụ của dãy (sequence) kiểu
             dữ liệu. Vì Python là một ngôn ngữ đang phát triển, các kiểu dữ liệu dãy khác có
             thể được thêm vào. Có một kiểu dãy chuẩn khác: bộ (tuple).

             Một tuple gồm một số các giá trị phân cách bởi dấu phẩy, ví dụ:

                  >>> t = 12345, 54321, 'hello!'
                  >>> t[0]
                  12345
                  >>> t
                  (12345, 54321, 'hello!')
                  >>> # Tuples may be nested:
                  ... u = t, (1, 2, 3, 4, 5)
                  >>> u
                  ((12345, 54321, 'hello!'), (1, 2, 3, 4, 5))

             Khi xuất ra, tuple luôn luôn được kèm giữa hai dấu ngoặc nhằm để cho các
             tuple lồng nhau có thể được thông dịch chính xác; chúng có thể được nhập vào
             với ngoặc hoặc không, mặc dù thông thường chúng ta vẫn cần các dấu ngoặc
             (nếu tuple là một phần của một biểu thức lớn hơn).

             Tuple được dùng nhiều. Ví dụ: cặp tọa độ (x, y), bản ghi nhân viên từ cơ sở dữ
             liệu, v.v... Giống như chuỗi, tuple không thể bị thay đổi: không thể gán giá trị
             mới cho từng phần tử của tuple (mặc dù bạn có thể đạt được cùng kết quả với
             cắt miếng và ghép dãy). Cũng có thể tạo tuple chứa các đối tượng khả biến ví dụ
             như danh sách.

             Vấn đề đặc biệt là trong việc tạo nên tuple chứa 0 hoặc một phần tử: cú pháp
             ngôn ngữ có một vài điểm riêng để thực hiện việc này. Tuple rỗng được tạo nên
             bởi một cặp ngoặc rỗng; tuple một phần tử được tạo bởi một giá trị theo sau bởi
             một dấu phẩy (việc cho giá trị đơn lẻ vào trong ngoặc không đủ để tạo tuple).
             Xấu, nhưng hiệu quả. Ví dụ:

                  >>> empty = ()
                  >>> singleton = 'hello',    # <-- note trailing comma
                  >>> len(empty)
                  0
                  >>> len(singleton)
                  1
                  >>> singleton
                  ('hello',)


             Câu lệnh t = 12345, 54321, 'hello!' là một ví dụ của việc đóng gói tuple
             (tuple packing): các giá trị 12345, 54321 và 'hello!' được gói lại vào trong
             một tuple. Và quá trình ngược:

                  >>> x, y, z = t



     6 of 11                                                                                  08/31/2011 07:39 AM
   34   35   36   37   38   39   40   41   42   43   44