Iteration và một số hàm hỗ trợ cho iteration object trong Python

Lập trình Python cơ bản

4.9 (13 đánh giá)
Tạo bởi Kteam Cập nhật lần cuối 5 năm trước 70.199 lượt xem 6 bình luận
Tác giả/Dịch giả: Kteam
Học nhanh

Danh sách bài học

Iteration và một số hàm hỗ trợ cho iteration object trong Python

Dẫn nhập

Trong bài trước, Kteam đã giới thiệu đến bạn cách XỬ LÝ FILE trong Python

Ở bài này Kteam sẽ giới thiệu với các bạn MỘT SỐ HÀM HỖ TRỢ CHO ITERABLE OBJECT trong Python. Một trong những điều thiết yếu mà bất cứ ngôn ngữ lập trình nào bạn cũng đều phải tìm hiểu.


Nội dung

Để đọc hiểu bài này tốt nhất bạn cần:

Bạn và Kteam sẽ cùng tìm hiểu những nội dung sau đây

  • Khái niệm iteration trong Python
  • Giới thiệu iterable object trong Python
  • Giới thiệu iterator object trong Python
  • Một số hàm hỗ trợ cho iterable object trong Python

Khái niệm iteration trong Python

Iteration là một khái niệm chung cho việc lấy từng phần tử một của một đối tượng nào đó, bất cứ khi nào bạn sử dụng vòng lặp hay kĩ thuật nào đó để có được giá trị một nhóm phần tử thì đó chính là Iteration.

Ví dụ: như bạn ăn một snack, bạn sẽ lấy từng miếng trong bọc snack ra ăn cho tới khi hết thì thôi. Bạn có thể coi việc lấy bánh là một vòng lặp. Đương nhiên bạn cũng có thể chọn không lấy hết số bánh ra.


Giới thiệu iterable object trong Python

Iterable object là một object có phương thức __iter__ trả về một iterator, hoặc là một object có phương thức __getitem__ cho phép bạn lấy bất cứ phần tử nào của nó bằng indexing ví dụ như Chuỗi, List, Tuple.


Giới thiệu iterator object trong Python

Iterator object đơn giản chỉ là một đối tượng mà cho phép ta lấy từng giá trị một của nó. Có nghĩa là bạn không thể lấy bất kì giá trị nào như ta hay làm với List hay Chuỗi.

Iterator không có khả năng tái sử dụng trừ một số iterator có phương thức hỗ trợ như file object sẽ có phương thức seek.

Iterator sử dụng hàm next để lấy từng giá trị một. Và sẽ có lỗi StopIteration khi bạn sử dụng hàm next lên đối tượng đó trong khi nó hết giá trị đưa ra cho bạn.

Các iterable object chưa phải là iterator. Khi sử dụng hàm iter sẽ trả về một iterator. Đây cũng chính là cách các vòng lặp hoạt động.

Ví dụ minh họa:

File object cũng là một iterator. Bạn cũng có thể sử dụng cách này để đọc file.

Bạn cũng lưu ý, iterator này cũng dính một vấn đề như List, Dict đó chính là chỉnh một, thay đổi hai.


Một số hàm hỗ trợ cho iterable object trong Python

Một điều lưu ý:  Các hàm này buộc phải lấy các giá trị của iterable để xử lí, do đó nếu bạn đưa vào một iterator. Thì bạn sẽ không sử dụng iterator đó được nữa.

Hàm tính tổng – sum

Cú pháp:

sum(iterable, start=0)

Công dụng: Trả về tổng các giá trị của iterable và iterable này chỉ chứa các giá trị là số. Còn start chính là giá trị ban đầu. Có nghĩa là sẽ cộng từ start lên. Mặc định là 0

Ví dụ:


Hàm tìm giá trị lớn nhất – max

Cú pháp:

max(iterable, *[, default=obj, key=func])

Công dụng: Nhận vào một iterable.Tìm giá trị lớn nhất bằng key (mặc định là sử dụng operator >). Default là giá trị muốn nhận về trong trường hợp không lấy được bất kì giá trị nào trong iterable.

  • Dấu * chính là kí hiệu yêu cầu keyword-only argument. Bạn sẽ hiểu thêm khi Kteam giới thiệu parameter trong function.

Hoặc

max(arg1, arg2, *args, *[, key=func])

Trong đó:

  • *args packing arguments (bạn sẽ hiểu thêm khi Kteam giới thiệu với bạn packing arguments). Ở đây không có parameter default, vì khi theo cách này, bạn luôn luôn có ít nhất 2 giá trị so sánh

Hàm tìm giá trị nhỏ nhất – min

Cú pháp:

min(iterable, *[, default=obj, key=func])

hoặc

min(arg1, arg2, *args, *[, key=func])

Ý nghĩa: giống như hàm max. Khác ở chỗ đây là tìm giá trị nhỏ nhất


Hàm sắp xếp – sorted

Cú pháp:

sorted(iterable, /, *, key=None, reverse=False)

Công dụng: Giống với phương thức sort của List object.

Ví dụ:


Củng cố bài học

Đáp án bài trước

Bạn có thể tìm thấy câu hỏi của phần này tại CÂU HỎI CỦNG CỐ trong bài XỬ LÝ FILE TRONG PYTHON.

  1.  w+ tạo ra một file nếu file đó hiện chưa có.
  2. Vì khi Tèo ghi xong, con trỏ file nằm ở cuối file > Tèo không đọc được gì. Trường hợp đó, ta sử dụng phương thức seek.

Kết luận

Qua bài viết này, Bạn đã hiểu hơn về ITERABLE OBJECT trong Python.

Ở bài viết sau. Kteam sẽ nói về NHẬP XUẤT TRONG PYTHON.

Cảm ơn bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”.


Tải xuống

Tài liệu

Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học Iteration và một số hàm hỗ trợ cho iteration object trong Python dưới dạng file PDF trong link bên dưới.

Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com

Đừng quên likeshare để ủng hộ Kteam và tác giả nhé!


Thảo luận

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.

Tác giả/Dịch giả

Khóa học

Lập trình Python cơ bản

Lập trình Python cơ bản

Đánh giá

danit2009 đã đánh giá khoảng 1 năm trước

hayyyyyyyyyyyyyyyyyyyyyyy

dongnv đã đánh giá 2 năm trước

Qiyalong đã đánh giá 2 năm trước

nzb103 đã đánh giá 3 năm trước

thien_phuu đã đánh giá 4 năm trước

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
hieuhi đã bình luận 3 năm trước

anh ơi tại file kiểu j vậy ạ

onlines92 đã bình luận 4 năm trước

ad nhầm tuple với list rồi :D

lhphuc đã bình luận 5 năm trước

Có một vài thứ làm em thấy khó hiểu đó là [] list còn này () là tuple nhưng khi anh đề cập [] là tuple

Văn Cao đã bình luận 6 năm trước

sort với sorted khác nhau ở chỗ ví dụ bạn muốn sắp xếp một list arr_1 vào một mảng arr_2 thì ta sẽ chạy arr_2 = sorted(arr_1)

còn khi muốn sắp xếp trực tiếp list arr_1 thì ta chạy : arr_1.sort()

Không có video.