Page 36 - Python Simple
P. 36

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



             Bạn cũng có thể thuận tiện dùng danh sách như là hàng đợi (queue), nơi mà
             phần tử được thêm vào đầu tiên là phần tử được lấy ra đầu tiên (``vào trước, ra
             trước'' hay ``first-in, first-out''). Để thêm một phần tử vào cuối hàng đợi, dùng
             append(). Để lấy một phần tử từ đầu hàng đợi, dùng pop() với 0 là chỉ mục. Ví
             dụ:


                  >>> queue = ["Eric", "John", "Michael"]
                  >>> queue.append("Terry")           # Terry arrives
                  >>> queue.append("Graham")          # Graham arrives
                  >>> queue.pop(0)
                  'Eric'
                  >>> queue.pop(0)
                  'John'
                  >>> queue
                  ['Michael', 'Terry', 'Graham']


             5.1.3 Công cụ lập trình hướng hàm



             Có sẵn ba hàm rất hữu dụng khi dùng với danh sách: filter(), map(), và
             reduce().

             "filter(function, sequence)" trả về một dãy chứa các phần tử từ dãy mà
             function(item) có giá trị đúng. Nếu sequence là một string hoặc tuple, thì kết quả
             trả về sẽ có cùng kiểu; ngược lại, sẽ luôn luôn là một list. Ví dụ, để tìm một vài
             số nguyên tố:

                  >>> def f(x): return x % 2 != 0 and x % 3 != 0
                  ...
                  >>> filter(f, range(2, 25))
                  [5, 7, 11, 13, 17, 19, 23]

             "map(function, sequence)" gọi function(item) với mỗi phần tử trong dãy và trả về
             một danh sách các giá trị trả về. Ví dụ, để tính một vài số lập phương:

                  >>> def cube(x): return x*x*x
                  ...
                  >>> map(cube, range(1, 11))
                  [1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]


             Có thể truyền vào nhiều dãy; hàm đó phải nhận từng ấy thông số với mỗi phần tử
             trong mỗi dãy là một thông số (hoặc None nếu dãy nào đó ngắn hơn dãy còn
             lại). Ví dụ:

                  >>> seq = range(8)
                  >>> def add(x, y): return x+y
                  ...
                  >>> map(add, seq, seq)
                  [0, 2, 4, 6, 8, 10, 12, 14]

             "reduce(function, sequence)" trả về giá trị duy nhất được tạo ra từ việc gọi hàm




     3 of 11                                                                                  08/31/2011 07:39 AM
   31   32   33   34   35   36   37   38   39   40   41