Thay thế vòng lặp trong python
Ví dụ, bạn có thể sử dụng vòng lặp để lặp qua danh sách giá trị, tích lũy tổng, lặp lại hành động, v.v. Show
Trong Python, bạn có thể sử dụng các vòng lặp for và while để đạt được hành vi lặp Ví dụ: đây là một vòng lặp for đơn giản in danh sách tên vào bảng điều khiển names = ["Ann", "Sofie", "Jack"] for name in names: print(name) Và đây là một vòng lặp while đơn giản in các số từ 0 đến 5 i = 0 while(i < 5): print(i) i += 1 Trong hướng dẫn này, bạn sẽ học
Đối với vòng lặp trong PythonTrong Python, vòng lặp for được sử dụng để lặp qua một lần lặp (chẳng hạn như danh sách hoặc từ điển)
Đây là cú pháp cơ bản của vòng lặp for for val in sequence: # some action Trong đó val là biến trong đó các phần tử bên trong chuỗi được lưu trữ lần lượt trong mỗi lần lặp Chẳng hạn, hãy lặp qua một danh sách tên và in chúng names = ["Ann", "Sofie", "Jack"] for name in names: print(name) đầu ra Ann Sofie Jack Đối với… Vòng lặp khác trong PythonBạn có thể sử dụng câu lệnh other trong vòng lặp for. Khối khác được thực thi khi vòng lặp kết thúc Ví dụ for i in range(3): print(i) else: print('Looping completed.') đầu ra 0 1 2 Looping completed. Hàm Range() trong Python—Theo dõi chỉ mục vòng lặpCho đến giờ, bạn đã thấy một vòng lặp for chọn từng phần tử một từ một tập hợp Tuy nhiên, đôi khi bạn có thể muốn sử dụng cách tiếp cận truyền thống để lặp. bắt đầu từ số 0 1 2 Looping completed.5 và kết thúc đến 0 1 2 Looping completed.6. Ví dụ, điều này có thể hữu ích khi bạn muốn liên kết một chỉ mục với từng phần tử Bạn có thể sử dụng hàm range() tích hợp để đạt được điều này. Hàm này trả về một đối tượng phạm vi là một dãy số trong phạm vi đã cho. Hàm phạm vi loại trừ đối số thứ hai Ví dụ print(list(range(0,5))) đầu ra i = 0 while(i < 5): print(i) i += 10 Ví dụ: hãy in tên của một nhóm người và vị trí tương đối của họ trong hàng đợi bằng hàm range() i = 0 while(i < 5): print(i) i += 11 đầu ra i = 0 while(i < 5): print(i) i += 10 Tìm thêm ví dụ về vòng lặp tại đây Vòng lặp While trong PythonBây giờ bạn đã biết những kiến thức cơ bản về cách sử dụng vòng lặp for. Tiếp theo chúng ta hãy xem vòng lặp while Trong python, bạn có thể sử dụng vòng lặp while để lặp lại một khối câu lệnh cho đến khi một điều kiện nhất định được thỏa mãn. Khi điều kiện trở thành sai vòng lặp kết thúc Chẳng hạn, để in các số từ 0 đến 5, bạn có thể sử dụng vòng lặp while như thế này i = 0 while(i < 5): print(i) i += 11 đầu ra i = 0 while(i < 5): print(i) i += 12 Tương tự như vòng lặp for, bạn có thể sử dụng vòng lặp while để lặp qua các vòng lặp, chẳng hạn như danh sách các số Để lặp qua một danh sách bằng vòng lặp while, bạn cần biết độ dài của danh sách và theo dõi một chỉ mục để không bắn quá nhiều vào nó. Điều này là do vòng lặp while hoạt động sao cho trên mỗi lần lặp lại, bạn truy cập vào một phần tử danh sách có chỉ mục Ví dụ i = 0 while(i < 5): print(i) i += 13 đầu ra i = 0 while(i < 5): print(i) i += 14 Vòng lặp While…Else trong PythonBạn có thể sử dụng câu lệnh else trong vòng lặp while . Khối khác được thực thi khi điều kiện lặp trở thành sai. Nói cách khác, khi vòng lặp kết thúc Nếu một vòng lặp bị kết thúc bởi câu lệnh break thì khối lệnh khác không được thực thi Đọc thêm về các khối khác trong vòng lặp trong Python Ví dụ i = 0 while(i < 5): print(i) i += 15 đầu ra i = 0 while(i < 5): print(i) i += 16 Vòng lặp lồng nhau trong PythonBây giờ bạn đã biết cách sử dụng cả vòng lặp for và while trong Python Cần hiểu rằng bạn có thể tạo một vòng lặp bên trong một vòng lặp. Đây được gọi là vòng lặp lồng nhau Ví dụ, đây là một vòng lặp for lồng nhau để in các danh sách của một danh sách i = 0 while(i < 5): print(i) i += 17 đầu ra i = 0 while(i < 5): print(i) i += 18 Ví dụ vòng lặp While lồng nhauHãy lặp lại ví dụ trên với vòng lặp while lồng nhau i = 0 while(i < 5): print(i) i += 19 đầu ra i = 0 while(i < 5): print(i) i += 18 Phá vỡ, Tiếp tục và Vượt qua — Kiểm soát Dòng chảy của Vòng lặpBạn có thể kiểm soát luồng thực thi của một vòng lặp bằng cách sử dụng các câu lệnh và tiếp tục. Chúng hoạt động theo cùng một cách đối với cả vòng lặp while và 0 1 2 Looping completed.7 vòng lặp
Ví dụ phá vỡCâu lệnh break ngắt vòng lặp và tiếp tục thực hiện chương trình từ dòng có thể tiếp theo sau vòng lặp Ví dụ for val in sequence: # some action1 đầu ra for val in sequence: # some action2 tiếp tục ví dụCâu lệnh continue bỏ qua “phần còn lại của vòng lặp” và bắt đầu lần lặp tiếp theo for val in sequence: # some action3 đầu ra for val in sequence: # some action4 Câu lệnh tiếp tục nhảy ra khỏi lần lặp hiện tại và bắt đầu lần lặp tiếp theo. Nếu n > 3 câu lệnh tiếp tục không đạt được nữa. Điều này có nghĩa là hành động in sẽ diễn ra Bây giờ bạn đã biết cách kiểm soát luồng thực thi của một vòng lặp bằng cách sử dụng các câu lệnh break và tiếp tục Hãy cùng xem câu lệnh pass là một cách để bỏ qua một vòng lặp trống Truyền câu lệnh trong PythonTrong Python, không thể để trống một vòng lặp (hoặc bất kỳ thứ gì xuất hiện sau dấu hai chấm). Nhưng có một thẻ từ khóa dành riêng cho điều đó Chẳng hạn, nếu bạn muốn vượt qua việc triển khai vòng lặp for, hãy thực hiện như thế này for val in sequence: # some action5 Một lớp lót cho các vòng lặp bằng cách hiểu danh sáchBây giờ bạn đã biết kiến thức cơ bản về vòng lặp trong Python. Đã đến lúc xem xét cách nén các vòng lặp bằng cách hiểu. Điều này có thể giúp giảm dòng mã và cải thiện chất lượng mã Khả năng hiểu danh sách là một tính năng tích hợp sẵn trong Python. Bạn có thể thay thế các vòng lặp bằng các biểu thức một dòng Cú pháp để hiểu danh sách trông như thế này for val in sequence: # some action6 Liệt kê các ví dụ về sự hiểu biếtHãy in một danh sách các số bằng cách hiểu for val in sequence: # some action7 đầu ra i = 0 while(i < 5): print(i) i += 14 Ví dụ này không thực tế, bởi vì việc hiểu danh sách có nghĩa là tạo một lần lặp mới dựa trên một lần lặp hiện có Để chứng minh điều này, hãy bình phương một danh sách các số for val in sequence: # some action9 đầu ra names = ["Ann", "Sofie", "Jack"] for name in names: print(name)0 Bạn có thể thêm một điều kiện vào cuối phần hiểu. Chẳng hạn, hãy lọc các số lẻ ra khỏi danh sách names = ["Ann", "Sofie", "Jack"] for name in names: print(name)1 đầu ra names = ["Ann", "Sofie", "Jack"] for name in names: print(name)2 Liệt kê hiệu suất hiểu trong PythonKhả năng hiểu danh sách nhanh hơn ~10% so với vòng lặp for thông thường Ví dụ: đây là mức trung bình trong thời gian chạy bằng cách sử dụng cả khả năng hiểu vòng lặp và danh sách để bình phương danh sách 1 triệu số nguyên Tuy nhiên, lợi thế nhỏ về hiệu suất không phải là lý do để sử dụng khả năng hiểu. Mục tiêu của việc sử dụng khả năng hiểu là để tránh các dòng mã không cần thiết và cải thiện khả năng đọc. Sử dụng các cách hiểu dài dòng để đạt hiệu suất sẽ không có ý nghĩa gì nếu nó hy sinh chất lượng mã. Các kiểu hiểu khác trong PythonHiểu danh sách không phải là loại hiểu duy nhất có. Python cũng hỗ trợ Để giữ cho nó ngắn gọn, tôi sẽ không đưa ra các ví dụ về những điều này. Hơn nữa, những cách hiểu này gần giống với cách hiểu danh sách Tóm tắt hiểu
Hàm liệt kê () trong PythonBạn có nhớ ví dụ mà bạn đã sử dụng hàm range() trong vòng lặp for để theo dõi chỉ mục của phần tử hiện tại không? . Hàm enumerate() tích hợp sẵn. Bạn có thể sử dụng nó với các vòng lặp để theo dõi chỉ mục của phần tử hiện tại Ví dụ names = ["Ann", "Sofie", "Jack"] for name in names: print(name)3 đầu ra names = ["Ann", "Sofie", "Jack"] for name in names: print(name)4 Liệt kê () hoạt động như thế nàoHàm enumerate() có hai đối số
Nó hoạt động bằng cách trả về một đối tượng liệt kê có chứa các thành phần của iterable cùng với một chỉ mục. Điều này rất hữu ích khi lặp. Bạn không cần theo dõi chỉ mục của phần tử hiện tại vì enumerate() làm việc đó cho bạn Hãy chứng minh những gì enumerate() làm names = ["Ann", "Sofie", "Jack"] for name in names: print(name)5 đầu ra names = ["Ann", "Sofie", "Jack"] for name in names: print(name)6 Các phần tử danh sách được kết hợp với các chỉ mục. Điều này giúp bạn có thể biết chỉ mục của từng phần tử trong vòng lặp for names = ["Ann", "Sofie", "Jack"] for name in names: print(name)7 Thay đổi giá trị ban đầu của chỉ mục trong enumerate()Hàm enumerate() chấp nhận giây. Đây là chỉ mục bắt đầu có giá trị 0 theo mặc định. Nếu bạn muốn lập chỉ mục bắt đầu từ một nơi khác, vui lòng xác định đối số bắt đầu Ví dụ: hãy bắt đầu lập chỉ mục từ 10 names = ["Ann", "Sofie", "Jack"] for name in names: print(name)8 đầu ra names = ["Ann", "Sofie", "Jack"] for name in names: print(name)9 Điều này kết thúc những điều cơ bản về vòng lặp trong Python bằng cách sử dụng vòng lặp for và while. Các chương tiếp theo là Python trung gian hiển thị cho bạn các lựa chọn thay thế vòng lặp for và while Thay thế các vòng lặp For và While trong Python bằng các hàm Map() và Filter()Bây giờ bạn đã biết những kiến thức cơ bản về vòng lặp trong Python, hãy chuyển sang các khái niệm trung gian Trong Python, có các hàm tích hợp dành riêng cho vòng lặp. Các tính năng này hoạt động bằng cách áp dụng hàm lambda trên từng thành phần trong danh sách và trả về phiên bản đã chuyển đổi của danh sách Trước khi hiển thị ví dụ về cách sử dụng map() và filter(), hãy cùng tìm hiểu hàm lambda là gì Biểu thức Lambda trong PythonHàm lambda là một hàm không có tên. Nó nhận bất kỳ số đối số nào và chỉ có một biểu thức Để chứng minh, đây là một hàm lambda bình phương một số Ann Sofie Jack0 Chẳng hạn, hãy bình phương một số bằng hàm lambda Ann Sofie Jack1 đầu ra Ann Sofie Jack2 Lambdas rất hữu ích khi cần chức năng này trong một khoảng thời gian ngắn. Nói cách khác, khi bạn không muốn lãng phí tài nguyên bằng cách tạo một phương thức riêng. Một ví dụ tuyệt vời là khi chuyển nó vào hàm map() Hàm Map() trong PythonHàm map() là hàm thay thế cho vòng lặp for. Nó áp dụng một chức năng cho từng phần tử của một lần lặp. Hàm map() chấp nhận hai đối số
Hàm 0 1 2 Looping completed.8 trả về là một đối tượng bản đồ. Điều này có thể dễ dàng được chuyển đổi thành một danh sách với hàm list() Để chứng minh điều này, hãy bình phương một danh sách các số Ann Sofie Jack3 đầu ra Ann Sofie Jack4 Hàm Filter() trong PythonHàm filter() dùng để lọc các phần tử dựa trên một điều kiện. Hàm lọc nhận hai đối số
Chẳng hạn, hãy lọc các số chẵn của danh sách số Ann Sofie Jack5 đầu ra Ann Sofie Jack6 Itertools—Vòng lặp hiệu quả và dễ dàng trong PythonItertools là một mô-đun Python. Nó cung cấp cho bạn các hàm để thực hiện các tác vụ liên quan đến lặp qua các lần lặp. Một phương thức Itertool trả về một đối tượng iterator Trước khi xem các ví dụ, đây là một định nghĩa ngắn cho một trình vòng lặp một có thể lặp lại
Hãy đi qua một số phương pháp Itertools hữu ích. Nếu không có những thứ này, bạn sẽ cần phải viết các vòng lặp lồng nhau phức tạp để hoàn thành công việc Tích lũy một danh sách các sốĐể tính tổng tích lũy, bạn có thể sử dụng vòng lặp for. Nhưng với sự trợ giúp của Itertools, bạn có thể sử dụng itertools. tích trữ() Dưới đây là một minh họa về sự tích lũy Đây là mã Ann Sofie Jack7 đầu ra Ann Sofie Jack8 Nếu bạn muốn tích một thứ khác ngoài tổng, hãy chuyển một đối số khác cho phương thức accumulate(). Đối số này là một hàm được áp dụng cho các phần tử Ví dụ: hãy tích lũy sản phẩm Để làm điều này, vượt qua toán tử. mul vào phương thức accumulate() để tích lũy tích thay vì tổng. Ann Sofie Jack9 đầu ra for i in range(3): print(i) else: print('Looping completed.')0 Nhóm một tập hợp các phần tử với chức năng groupby()Bạn có thể nhóm một lần lặp theo một tiêu chí bằng cách sử dụng itertools. phương thức groupby() Hãy nhóm danh sách các số sau đây thành các nhóm số nhỏ hơn ba và lớn hơn bằng ba for i in range(3): print(i) else: print('Looping completed.')1 đầu ra for i in range(3): print(i) else: print('Looping completed.')2 Tính tích DescartesTích Descartes là một nhóm gồm tất cả các cặp từ hai danh sách Để tính tích Descartes, bạn có thể sử dụng vòng lặp for. Nhưng Itertools cung cấp cho bạn một cách để lấy nó bằng cách sử dụng itertools. phương thức product(). Nó trả về tích Descartes dưới dạng một đối tượng lặp Ví dụ for i in range(3): print(i) else: print('Looping completed.')3 đầu ra for i in range(3): print(i) else: print('Looping completed.')4 Có được tất cả các hoán vịVới một nhóm các mục, bạn có thể tìm tất cả các cách có thể để sắp xếp chúng bằng itertools. hoán vị() Ví dụ for i in range(3): print(i) else: print('Looping completed.')5 đầu ra for i in range(3): print(i) else: print('Looping completed.')6 Nhận tất cả các kết hợpSử dụng itertools. tổ hợp() để tìm tất cả các tổ hợp (có kích thước n) của một nhóm mục Chẳng hạn, hãy tìm tất cả các cặp bạn có thể tạo từ danh sách ba số for i in range(3): print(i) else: print('Looping completed.')7 đầu ra for i in range(3): print(i) else: print('Looping completed.')8 Trình vòng lặp vô hạn—Vòng lặp vô hạn hợp lệTrình lặp vô hạn có thể đưa ra một dòng số vô hạn. Nó giống như một “vòng lặp vô hạn hợp lệ” Không thể lưu trữ vô số phần tử trong bộ nhớ. Nhưng vì trình vòng lặp chỉ quan tâm đến phần tử hiện tại nên có thể tạo ra vô số luồng mục mục bằng cách sử dụng trình vòng lặp Hãy đi qua các ví dụ ĐếmBạn có thể sử dụng itertools. Count() phương thức lặp số từ số bắt đầu đến vô cùng Ví dụ: hãy tạo một dòng số vô hạn bắt đầu từ 10 for i in range(3): print(i) else: print('Looping completed.')9 đầu ra 0 1 2 Looping completed.0 Đi xe đạpBạn có thể sử dụng Itertools để sắp xếp danh sách các số bằng itertools. chu kỳ() phương pháp. Chu kỳ lặp đi lặp lại mãi mãi Bạn có thể thay vòng lặp while bằng vòng lặp for được không?vòng lặp for() luôn có thể được thay thế bằng vòng lặp while() , nhưng đôi khi, bạn không thể sử dụng vòng lặp for() mà phải sử dụng vòng lặp while().
Có vòng lặp for nào khác trong Python không?Trong hầu hết các ngôn ngữ lập trình (C/C++, Java, v.v.), việc sử dụng câu lệnh other đã bị hạn chế với câu lệnh điều kiện if. Nhưng Python cũng cho phép chúng ta sử dụng điều kiện khác với vòng lặp for . Khối other ngay sau for/while chỉ được thực thi khi vòng lặp KHÔNG bị kết thúc bởi câu lệnh break.
Tôi có thể sử dụng cái gì thay cho vòng lặp for pandas?Hầu hết thời gian, bạn có thể sử dụng giải pháp vector hóa để thực hiện các thao tác Pandas của mình. Thay vì sử dụng thao tác kiểu “vòng lặp for” liên quan đến việc lặp qua một tập hợp dữ liệu mỗi lần một giá trị, vector hóa có nghĩa là bạn triển khai một giải pháp hoạt động trên toàn bộ tập hợp các giá trị cùng một lúc.
Làm cách nào để thay thế một ký tự trong một chuỗi trong Python bằng vòng lặp for?Thay thế ký tự trong chuỗi bằng vòng lặp for trong python
. using the replace() function or sub() function or a for loop. |