Python Enumerate (): Đơn Giản Hóa Vòng Lặp Với Bộ đếm - T3H

Skip to main content Python enumerate (): Đơn giản hóa vòng lặp với bộ đếm
  • Trang chủ
  • Tin tức
Python enumerate (): Đơn giản hóa vòng lặp với bộ đếm 21 Nov

Python enumerate (): Đơn giản hóa vòng lặp với bộ đếm

By t3h 0 Comments

Trong Python, vòng lặp for thường được viết dưới dạng một đối tượng có thể lặp lại. Có nghĩa là bạn sẽ không cần sử dụng các biến đếm để truy cập các mục trong biến iterable (biến có thể lặp lại). Tuy vậy, trong một số trường hợp, bạn sẽ muốn có một biến có thể thay đổi trên mỗi lần lặp vòng lặp. Thay vì tự mình tạo và thêm biến, bạn có thể sử dụng Python enumerate () để lấy bộ đếm và giá trị từ biến có thể lặp cùng một lúc.

Ví dụ về Python Enumerate

Ví dụ về Python Enumerate

Trong bài viết này, bạn sẽ tìm hiểu cách sử dụng enumerate trong Python để có một bộ đếm trong một vòng lặp và các trường hợp sử dụng lệnh enumerate trong lập trình với Python

Lặp lại với vòng lặp for trong Python

Một vòng lặp for trong Python sử dụng phép lặp dựa trên tập hợp. Điều này có nghĩa là Python sẽ chỉ định mục tiếp theo từ biến iterable cho biến vòng lặp trên mỗi lần lặp như ví dụ dưới đây:

>>> values = ["a", "b", "c"]

>>> for value in values:

...    print(value)

...

a

b

c

Trong ví dụ này, values là một danh sách với 3 giá trị a, b và c. Trong Python, danh sách là một loại đối tượng có thể lặp lại. Trong vòng lặp for, biến của vòng lặp là value. Trên mỗi lần lặp của vòng lặp, value sẽ được đặt thành mục tiếp theo từ chính values này.

Ưu điểm của việc lặp lại dựa trên tập hợp là nó giúp tránh lỗi từng phần một.

Bây giờ, nếu bạn muốn  in chỉ mục của mục trong danh sách ra màn hình trên mỗi lần lặp. Điều bạn cần làm là tạo một biến để lưu trữ chỉ mục và cập nhật nó trên mỗi lần lặp. Tuy vậy, bạn có thể gặp một số lỗi như quên cập nhập giá trị mỗi lần lặp hay bị hạn chế trong quá trình lặp.

Python enumerate () cho phép bạn tránh tất cả những vấn đề này. Đây là một chức năng được tích hợp sẵn trong các phiên bản Python.

>>> Xem thêm: Fix bug trong Python - 5 công cụ sửa lỗi cần thiết cho Lập trình viên Python

Cách sử dụng Python enumerate ()

Bạn có thể sử dụng enumerate () trong vòng lặp theo cách gần giống như cách bạn sử dụng đối tượng có thể lặp ban đầu. Thay vì đưa trực tiếp các biến vào sau in trong vòng lặp for, bạn có thể đặt nó trong ngoặc đơn của lệnh enumerate. Ví dụ như sau:

>>> for count, value in enumerate(values):

...    print(count, value)

...

0 a

1 b

2 c

Khi sử dụng enumerate (), hàm cung cấp cho bạn hai biến vòng lặp như sau:

- Số lần lặp hiện tại

- Giá trị chỉ mục ở lần lặp hiện tại

Cũng giống như một vòng lặp for thông thường, các biến ở vòng lặp có thể được đặt tên theo bất kỳ tên nào mà bạn muốn. Trong ví dụ trên, count và value đã được đặt tên, nhưng bạn có thể đặt chúng theo bất kỳ tên nào mà bạn muốn.

Với enumerate, bạn không cần phải nhớ truy cập mục từ chỉ mục trong iterable, và bạn không cần phải nhớ việc tăng chỉ mục ở cuối vòng lặp. Mọi thứ đều được tự động và vì thế tránh việc làm sai sót khi làm thủ công.

Python enumerate có một đối số bổ sung mà bạn có thể sử dụng để kiểm soát giá trị của lần đếm. Theo mặc định, giá trị bắt đầu là 0 vì kiểu chuỗi trong Python được lập chỉ mục bắt đầu bằng 0. Khi muốn truy xuất phần tử đầu tiên của danh sách, bạn sử dụng chỉ mục 0 như sau:

>>> print(values[0])

a

Bạn có thể thấy trong ví dụ này rằng việc truy cập values bằng chỉ mục 0 cho phần tử đầu tiên. Tuy nhiên, đôi khi bạn không muốn đếm từ 0 mà thay vào đó là các số đếm tự nhiên cho người dùng. Trong trường hợp này, bạn có thể sử dụng start đối số for enumerate()để thay đổi số lượng bắt đầu:

>>> for count, value in enumerate(values, start=1):

...    print(count, value)

...

1 a

2 b

3 c

Trong ví dụ này, start =1, count sẽ bắt đầu bằng giá trị là 1 ngay trong lần lặp đầu tiên.

>>> Tham khảo: Khóa học lập trình Python

Thực hành với Python enumerate ()

Trong phần trước bạn đã thấy cách sử dụng enumerate với lệnh start để tạo số đếm tự nhiên cho người dùng. enumerate cũng được sử dụng tương tự trong cơ sở mã của Python. 

Sử dụng câu lệnh điều kiện để xử lý các mục có thể là kỹ thuật rất hiệu quả. Đô khi bạn có thể cần thực hiện một hành động chỉ trong lần lặp đầu tiên, ví dụ như sau:

>>> users = ["Test User", "Real User 1", "Real User 2"]

>>> for index, user in enumerate(users):

...    if index == 0:

...        print("Extra verbose output for:", user)

...    print(user)

...

Extra verbose output for: Test User

Real User 1

Real User 2

Kết luận: Hàm enumerate của Python là một hàm mạnh mẽ và hữu ích với lập trình viên. Bạn có thể lập trình nhanh, hiệu quả và ít sai sót hơn khi sử dụng hàm enumerate trong lập trình. Hy vọng, qua bài viết trên, bạn đã biết cách sử dụng và thực hành hàm này trong chương trình của mình. Muốn nhanh chóng làm quen với Python và các ngôn ngữ lập trình khác, đừng quên tham khảo thêm các khóa học lập trình để bổ sung kiến thức bạn nhé!

Nguồn tham khảo: realpython

  • t3h's blog
microsoft-sql-server-la-gi Microsoft SQL Server Là Gì? Những Ưu Nhược Điểm Của Microsoft SQL Dec 24,2024 lts-la-gi-tim-hieu-lts-trong-cac-phien-ban-linux LTS Là Gì? Tìm Hiểu LTS Trong Các Phiên Bản Linux Dec 20,2024 ruby-on-rails-la-gi-nhung-tinh-nang-dac-biet-ma-ban-nen-biet Ruby On Rails Là Gì? Những Tính Năng Đặc Biệt Mà Bạn Nên Biết Dec 17,2024  learning-machine-la-gi-tong-quan-ve-learning-machine Learning Machine Là Gì? Tổng Quan Về Learning Machine Dec 13,2024  npm-la-gi-cach-su-dung-npm-de-don-gian-hoa-cong-viec NPM Là Gì? Cách Sử Dụng NPM Để Đơn Giản Hóa Công Việc Dec 10,2024  github-la-gi-tai-sao-github Github Là Gì? Tại Sao Github Ngày Càng Được Nhiều Lập Trình Viên Sử Dụng Dec 06,2024 buffer-la-gi-so-sanh-va-tim-hieu-ve-buffer-va-cache Buffer Là Gì? So Sánh Và Tìm Hiểu Về Buffer Và Cache Dec 03,2024 debugging-la-gi-meo-viet-code Debugging Là Gì? Mẹo Viết Code Giúp Chúng Ta Soát Lỗi Nhanh Nov 29,2024  event-loop-la-gi-tat-ca-kien-thuc-can-biet Redux Là Gì? Hiểu Rõ Cơ Bản Về Redux Nov 26,2024 Lập trình Frontend ReactJS Khóa học lập trình Python Khóa học Lập trình Python Django Fullstack Lập trình Front-End với Angular Lập trình Web application với C# .NET 8 (new) Khóa học kiểm thử phần mềm Tester Lập trình Java Web FullStack Lập trình Web PHP FullStack Lập trình ứng dụng mobile android Lập trình Android

Với mình việc học ở T3H thực sự là điều rất thú vị, được tham gia các hoạt động, được học tập vui vẻ. Đừng ngại việc mình chưa có kinh nghiệm, đừng ngại thất bại, bởi vì các đồ án cũng được xem như là các dự án thực tế rồi. Hãy chuẩn bị cho mình 1 CV thật tốt.

Đinh Nhật Anh Designer tại Dược mỹ phẩm Hàn Quốc GSC

Tại T3H mình đã được trải qua khoảng thời gian học tập và hoạt động thực sự đáng nhớ. Nó đã cho mình rất nhiều bài học và kinh nghiệm sống cũng như kỹ năng chuyên môn. Hãy mạnh dạn tham gia và làm những điều mà bạn chưa từng làm hoặc không phải thế mạnh của bạn, bạn sẽ biết về nó, tầm hiểu biết của bạn sẽ ngày càng mở rộng.

Nguyễn Việt Anh Designer tại MP Group

T3H giống như bước đệm kiến thức và mối quan hệ của mình. Nhờ T3H mình có thể vừa học vừa tìm được những công việc tốt, kiếm được những đồng nghiệp, những partner ngay khi hoc cùng nhau.

Phạm Quang Linh Team Leader tại Laptrinhluon.com

Với T3H, mình luôn biết ơn người thầy đã dìu dắt và dẫn lối mình khi mình bắt đầu vào trường, thầy Nguyễn Mạnh Tiền. Không chỉ hỗ trợ mình trong học tập, công việc mà còn trong cuộc sống và đạo đức. Thầy luôn phân tích và đưa ra hướng giải quyết nhờ đó mình có thể vượt qua những khó khăn khi sống ở 1 thành phố lớn.

Trần Đức Hiến Design tại TMV Digital/ Design tại Maria Clinic

T3H là nơi đúng đắn để mình đặt chân tới. Từ những ngày đầu đặt chân đến đã thấy sự nhiệt tình của mọi người trong trường, ngoài việc học, ở T3H mình còn được tham gia các hoạt động chào đón tân sinh viên, các hoạt động mừng ngày lễ, gắn kết sinh viên. Chúc mọi người có thật nhiều thành công khi học tại T3H.

Đinh Xuân Phương

Học tại T3h rất tốt cho các bạn muốn theo đuổi ngành công nghệ thông tin, trau dồi kiến thức cho mình và hỏi mọi người, biến những đam mê của mình dần đạt được cái mình mong muốn, hãy hết mình vì cái mình đam mê và biến nó dần thành hiện thực.

Nguyễn Văn Tiến Photo - Cameraman - Editor tại Pông Media

T3h đã cho tôi những trải nghiệm mới mẻ, đặc biệt là giúp tôi được thử thách và chứng tỏ bản thân mình. Nếu được chọn lại, tôi chắc chắn vẫn sẽ chọn là sinh viên T3h!!!

(Sinh viên lớp: K28DH) 

Lê Hồng Nhung Designer - Công ty công nghệ Lê Nam

Môi trường năng động, các bạn sinh viên nhiệt tình. Không có nhiều khoảng cách giữa sinh viên và giảng viên

(Sinh viên lớp: K28DH) 

Lê Duy Ngọc Developer .Net - Tập đoàn Đại Việt

Môi trường học tập tốt, một số thầy cô giáo giảng dạy rất có tâm, nhiệt tình với sinh viên. Sinh viên sau khi hoàn thành khóa học cũng dễ dàng tìm kiếm được công việc phù hợp.

(Sinh viên lớp: K29C _ DH1507) 

Đỗ Thị Hải Hậu Phụ trách Model 3D - Công ty GDL

T3H là một mái trường rất đáng yêu, bạn bè đáng yêu, đến thầy cô cũng đang yêu nốt

(Sinh viên lớp: K29A1_DH1507) 

Phan Tiến Dũng Designer - Công ty Hatch

Thật may mắn khi thầy cô giáo, anh chị Hội Sinh viên rất nhiệt tình, giúp đỡ chúng mình. T3H như là ngôi nhà thứ 2 của mình vậy đó. 

(Sinh viên lớp: K29A_DH1507) 

Nguyễn Thị Phương Thủy Designer - Công ty tranh 3D

T3H thật sự là 1 gia đình, mọi người đều sẵn sàng dậy cho nhau 1 điều gì đó, một môi trường mà mọi người đều sẵn sàng chia sẻ và học hỏi lẫn nhau (Sinh viên lớp: K29A1_DH1507) 

Lê Trung Kiên Trưởng ban thiết kế - Công ty Skynetone Việt Nam

Một môi trường hoàn toàn năng động và có ứng dụng thực tế hơn rất nhiều ngôi trường khác.       (Sinh viên lớp: K29A_DH1507)

Nguyễn Thị Bích Thảo Chuyên viên diễn hoạt Animation - Công ty CP Global Dream Lad – Tổ chức giáo dục Hoa Kỳ.

T3H là nơi tôi được sống trọn với những đam mê, những sở thích, là nơi tôi có thể khám phá được những khả năng của bản thân. Tất cả là nhờ sự tận tâm, tận tình từ các thầy cô, anh chị, bạn bè. T3H đã thực sự trở thành mái nhà thứ 2 của tôi!!!

Nguyễn Mạnh Tiền Cán bộ phòng Đào tạo Hitech Việt Nam

Đề tài Project java android xuất xắc, sinh viên tiêu biểu T3H - Framgia Vietnam nhận ngay trong hội đồng bảo vệ đồ án cuối khóa

Phạm Trung Đoan FPT Software, Framgia Vietnam

"Tôi học ở T3h với những thầy cô nhiệt tình , quan tâm lo lắng cho Sinh viên. Môi trường năng động, bạn bè hòa đồng vui vẻ. Các bạn hãy đến với T3H Hà Nội để trải nghiệm nhé"

NGUYỄN VĂN DŨNG Lớp K30A1DH

"Dẫu tưởng rằng T3h sẽ giống những trường đại học khác, khô khan và chỉ biết đến bản thân. Nhưng không khi đến đây và học tập rồi hoạt động em mới hiểu tại sao lại gọi là T3h family', những chiến binh hết mình với học tập"

Nguyễn Thảo Quỳnh K29A1-DH1507

"Kiến thức, những người bạn lầy lội, những giảng vui tính là thứ mà tôi có được tại T3H. Nơi đây chính là cây cầu nối giữa tôi với niềm đam mê của mình về CNTT"

Nguyễn Tiến Tân K30A4DH

"Môi trường học năng động trẻ chung, giáo viên rất nhiệt tình hướng dẫn, support đồ án cho sinh viên"

Nguyễn Minh Lân K30A3DH

 "Khi học tập ở T3H, tôi đã bổ sung cho mình được rất nhiều kiến thức để vận dụng công việc tốt hơn và định hướng được nghề nghiệp. Giảng viên rất nhiệt tình, nhiều kinh nghiệm, giúp đỡ tôi rất nhiều trong quá trình học. Cảm ơn T3H" 

PHẠM TRUNG ĐOAN Làm việc tại Samsung Electronic Việt Nam

"Thầy cô giảng viên và anh chị khóa trên rất thân thiện và tận tâm. Họ sẵn sàng, khi bạn cần giúp về vấn đề kĩ thuật hay học tập của bạn. Đây là điều em thích nhất ở T3H"

Đỗ Quang Linh K30A3DH

T3H là ngôi nhà thứ hai của tôi, môi trường thoải mái, bạn bè thân thiện, thầy cô tâm huyết. Nơi đây đã cho tôi nhiêu bài học quý giá, nhiều kỉ niệm đẹp. Cám ơn T3H, tình yêu tuổi trẻ của tôi!.

VŨ THỊ QUỲNH Designer tại Hitech Việt Nam

Nơi tôi cảm nhận được sự yêu thương, nhiệt huyết của các thầy cô. Nơi đã cho tôi cơ hội được phát triển, nơi giúp tôi trường thành, nơi cho tôi cuộc sống và sự nghiệp như ngày hôm nay.

Nguyễn Văn Thành Designer tại Topica Edtech Group

Môi trường học tập thoải mái, thầy cô dễ gần, dễ tiếp xúc, kiến thức sát với thực tế. Nhà trường luôn luôn tạo nhiều điều kiện cho sinh viên phát triển!

Doãn Trọng Tài TP Công nghệ cty D&D Việt Nam

Thầy cô nhiệt tình và tâm huyết với sinh viên. Các anh chị sinh viên có tinh thần giúp đỡ các em khóa dưới. Môi trường thoải mái, và cho sinh viên cơ hội phát triển.

Trần Thị Hoa Hội sinh viên T3H

T3H nơi tôi cảm nhận được sự gần gũi, thân thương, là cái nôi đã giúp tôi trưởng thành như ngày hôm nay. Từ một sinh viên "KHÔNG BIẾT GÌ" về đồ họa, giờ tôi có thể tự tin mà nói rằng : I AM A PROFESSIONAL DESIGNER với công việc và mức lương tôi hằng mơ ước!

Phạm Ánh Duyên Designer of HONG HA PRINTING .,JSC

"Trường luôn tạo điều kiện học tập tốt nhất cho sinh viên, các giảng viên thì nhiệt tình, tận tâm với sinh viên, hỗ trợ sinh viên hết mình! Ngoài việc học trên trường, hội sinh viên còn tổ chức ra nhiều chương trình, nhiều sự kiện để khuấy động phong trào trong sinh viên"

Nguyễn Thị Thu Hà Thiết kế 2D - Công ty CP BĐS Rbland

T3H là nơi tôi được sống trọn với những đam mê, những sở thích, là nơi tôi có thể khám phá được những khả năng của bản thân. Tất cả là nhờ sự tận tâm, tận tình từ các thầy cô, anh chị, bạn bè. T3H đã thực sự trở thành mái nhà thứ 2 của tôi!!!

Nguyễn Mạnh Tiền Cán bộ phòng Đào tạo Hitech Việt Nam

Đề tài Project java android xuất xắc, sinh viên tiêu biểu T3H - Framgia Vietnam nhận ngay trong hội đồng bảo vệ đồ án cuối khóa

Phạm Trung Đoan FPT Software, Framgia Vietnam

Thầy cô giảng viên và anh chị khóa trên rất thân thiện và tận tâm. Họ sẵn sàng, khi bạn cần giúp về vấn đề kĩ thuật hay học tập của bạn. Đây là điều em yêu hích nhất ở T3H"

Lê Trung Kiên K29DH

"T3H là một môi trường giáo dục thực tế nhất mà em từng biết. Đã đào tạo thẳng vào chuyên ngành giúp cho sinh viên phát huy được hết các khả năng về chuyên ngành của mình"

Phạm Hồng Hà K30A1DH
  • microsoft-sql-server-la-gi Microsoft SQL Server Là Gì? Những Ưu Nhược Điểm Của Microsoft SQL Dec 24,2024
  • lts-la-gi-tim-hieu-lts-trong-cac-phien-ban-linux LTS Là Gì? Tìm Hiểu LTS Trong Các Phiên Bản Linux Dec 20,2024
  • ruby-on-rails-la-gi-nhung-tinh-nang-dac-biet-ma-ban-nen-biet Ruby On Rails Là Gì? Những Tính Năng Đặc Biệt Mà Bạn Nên Biết Dec 17,2024
  •  learning-machine-la-gi-tong-quan-ve-learning-machine Learning Machine Là Gì? Tổng Quan Về Learning Machine Dec 13,2024
  •  npm-la-gi-cach-su-dung-npm-de-don-gian-hoa-cong-viec NPM Là Gì? Cách Sử Dụng NPM Để Đơn Giản Hóa Công Việc Dec 10,2024

Từ khóa » Trong Python Câu Lệnh Lặp Thường Có Dạng