Hướng dẫn dùng sequence definition python
Trong bài viết trước, tôi đã giới thiệu về built-in function và đưa ra một số ví dụ về việc dùng built-in function sẽ đẩy nhanh tốc độ thực thi của chương trình. Đặc điểm của các đối tượng của kiểu dữ liệu lặp là cho phép lập trình viên lấy ra từng phần tử trong nó, hành động lấy ra các đối tượng có thể lặp đi lặp lại một cách tuần tự bằng vòng lặp for, while, next, .... Ở bài viết trước, tôi đã đưa ra các ví dụ về tốc độ xử lý của 2 built-in function sum và len, bài viết tiếp theo này, tôi sẽ bỏ qua việc chứng minh tốc độ thực thi của built-in function mà tập trung vào chức năng và cách sử dụng của built-in function. 1. sorted
Đầu vào: Function đầu tiên mà tôi
muốn giới thiệu với các bạn là function Ví dụ:
Kết quả:
Lưu ý:
Kết quả:
Dùng Cách sử dụng Định nghĩa về cách sử dụng Đề bài:
Bài toán trên nếu để làm theo cách lập trình thông thường (kể cả dùng python để giải quyết) cũng sẽ tốn khá khá "giấy bút" và các biến dữ liệu phụ. Tiếp tục đi vào ví dụ thứ 2 để nhấn mạnh thêm tiện ích của key nhé. Đề bài:
Ngoài cách viết trên, còn cách viết ngắn gọn hơn dùng đến biểu thức
2. EnumerateĐây là một function được đưa ra để giúp các lập trình viên thực hiện lấy ra cặp giá trị index-value từ các đối tượng sequence-type-object (list, set, dict, string,...) Sử dụng enumerate sẽ thay thế được cú pháp lấy ra index-value từ đối tượng sequence-type-object thường gặp với C-style.
Câu hỏi đặt ra là đối tượng trả về của function enumerate là gì ? và từng đối tượng được sử dụng trong vòng lặp for phía trên là kiểu dữ liệu gì?
Kết quả:
Như vậy kết quả trả về của enumerate là đối tượng enumerate object và từng đối tượng được lấy ra có kiểu dữ liệu tuple. Ngoài việc sử dụng trong vòng lặp, enumerate có thể giúp các lập trình viên tạo ra một list dữ liệu chứa các tuple:
Kết quả: Trong định nghĩa của enumerate, có tham số
Kết quả: 3. all & any3.1. allĐầu vào: Một sequence-type-object Trong Python, các giá trị được tính là có giá trị Nếu không sử dụng function all(), chúng ta sẽ phải thực hiện một vòng lặp để lặp qua tất cả các phần tử và so sánh
Kết quả trả về:
Kết quả: Với dictionary, function
Kết quả:
Kết quả: 3.2. anyĐầu
vào: Một sequence-type-object Hàm any hơi khác một chút so với hàm all. Hàm all() chỉ cần có 1 giá trị là False sẽ trả về False, hàm any thì chỉ cần một phần tử giá trị True là trả về True
Tương tự với all khi ứng xử với dictionary, any cũng nhận đầu vào key của các dictionary
4. Reversedreversed(sequence): Đảo ngược các phần tử trong một sequence-type-object Đầu vào: sequence-type-object
Kết quả:
5. max & min
Riêng với 2 function này chắc không cần nói nhiều về chúng, bài toán tìm số lớn nhất & nhỏ nhất tốn rất nhiều "giấy bút" của các lập trình viên và Python đã cung cấp luôn 2 built-in function để giải quyết bài toán này. Trên thực tế, với một số tập dữ liệu đặc biệt có thể built-in function cho kết quả chưa chắc đã tối ưu hơn các cách giải quyết bài toán bằng tư duy toán học & thuật toán nhưng bằng việc chỉ dùng 1 dòng lệnh để tính ra kết quả thì cũng xứng đáng để chúng ta sử dụng 2 function này
Kết quả:
Kết luậnTrên đây là một số ví dụ về built-in function thường dùng trong xử lý các kiểu dữ liệu lặp, hy vọng các bạn sẽ rút ra được một số kinh nghiệm cho bản thân mình và lựa chọn đúng đắn trong việc tự code hay sử dụng luôn built-in function. |