Trong Python, các đối tượng có thể được phân loại thành một trong hai nhóm, có thể lặp lại hoặc không thể lặp lại. Nếu một đối tượng có khả năng trả về từng giá trị thành viên của nó thì có thể lặp lại; . Đối với các đối tượng không thể lặp lại, chúng ta chỉ phải coi nội dung là một đơn vị duy nhất; . Một số ví dụ phổ biến về các đối tượng có thể lặp lại là danh sách, bộ dữ liệu, bộ và từ điển Show
Trình lặpPython có một đối tượng chuyên dụng được gọi là trình vòng lặp được sử dụng để lặp qua các đối tượng có thể lặp lại. Các trình lặp này được triển khai bằng hai phương thức, iter()iter()iter() và next()next()next(), thường được gọi là giao thức trình lặp. Nhiệm vụ của iter()iter()iter() là khởi tạo phương thức; Cách sử dụng IteratorTạo một trình vòng lặpiter()iter()iter() được sử dụng để tạo trình vòng lặp trên đối tượng có thể lặp lại. Trình lặp được tạo là một trình trích xuất giá trị trích xuất các giá trị liên tiếp từ đối tượng có thể lặp đến đối tượng mà nó được liên kết
Di chuyển trình vòng lặpSau khi trình vòng lặp được tạo, hàm tích hợp sẵn 6 được sử dụng để lấy giá trị tiếp theo từ trình vòng lặp. Giá trị này sẽ bắt đầu từ phần tử đầu tiên
Đoạn mã trên sẽ trả về phần tử đầu tiên từ danh sách, tôi. e. , RaviRaviRavi. Tương tự, khi chúng ta gọi lại, nó sẽ trả về phần tử tiếp theo trong danh sách
Nếu tất cả các giá trị từ một trình vòng lặp đã được trả về, lệnh gọi 6 tiếp theo sẽ tạo ra một ngoại lệ 8. Mọi nỗ lực tiếp theo để lấy giá trị từ trình vòng lặp sẽ không thành côngTóm lại, chúng ta có thể nói rằng, nếu chúng ta có một đối tượng có thể lặp lại (giả sử ppp), thì có thể lấy một trình vòng lặp qua nó bằng cách sử dụng iter(a) và mỗi lệnh gọi 6 qua trình vòng lặp đã tạo sẽ nhận được giá trị tiếp theo từ ppp Ngoại lệ JavaScript "không thể lặp lại" xảy ra khi giá trị được cung cấp ở phía bên tay phải của 0, làm đối số của hàm chẳng hạn như 0 hoặc 1 hoặc ở phía bên phải của phép gán phá hủy mảng, không phải là Thông điệpTypeError: object is not iterable (cannot read property Symbol(Symbol.iterator)) (V8-based) TypeError: x is not iterable (Firefox) TypeError: undefined is not a function (near '...[x]...') (Safari) loại lỗi 2Có chuyện gì?Giá trị được cung cấp ở phía bên tay phải của 0 hoặc làm đối số của một hàm chẳng hạn như 0 hoặc 1 hoặc ở phía bên phải của phép gán phá hủy mảng, không phải là một đối tượng có thể lặp lại. Một iterable có thể là một loại iterable được tích hợp sẵn, chẳng hạn như 6, 7 hoặc 8, một kết quả của trình tạo hoặc một đối tượng triển khai giao thức có thể lặp lạiví dụMảng phá hủy không thể lặp lại
Không thể lặp lại có thể trở thành 9 trong một số môi trường thời gian chạyLặp lại các thuộc tính đối tượngTrong JavaScript, các 50 không thể lặp lại trừ khi chúng triển khai giao thức có thể lặp lại. Do đó, bạn không thể sử dụng 0 để lặp lại các thuộc tính của một đối tượng 5Thay vào đó, bạn phải sử dụng 52 hoặc 53, để lặp lại các thuộc tính hoặc mục nhập của một đối tượng 9Một tùy chọn khác cho trường hợp sử dụng này có thể là sử dụng một 8 1Lặp lại trên một trình tạoCác hàm tạo là các hàm bạn gọi để tạo một đối tượng có thể lặp lại 2Khi chúng không được gọi, đối tượng 55 tương ứng với trình tạo có thể gọi được, nhưng không thể lặp lại. Việc gọi một trình tạo sẽ tạo ra một đối tượng có thể lặp lại sẽ lặp lại các giá trị được tạo ra trong quá trình thực thi trình tạo 4Lặp lại qua một lần lặp tùy chỉnhCó thể tạo các lần lặp tùy chỉnh bằng cách triển khai phương thức 56. Bạn phải chắc chắn rằng phương thức iterator của bạn trả về một đối tượng là iterator, nghĩa là nó phải có phương thức tiếp theo
Cái nào trong số chúng không thể lặp lại?all hoặc TypedArray. từ hoặc là phía bên tay phải của phép gán phá hủy mảng , không phải là đối tượng có thể lặp lại. Một iterable có thể là một loại iterable được tích hợp sẵn, chẳng hạn như Array , String hoặc Map , một kết quả của trình tạo hoặc một đối tượng triển khai giao thức iterable.
Chuỗi có thể lặp lại trong Python không?Số danh sách và tên chuỗi có thể lặp lại vì chúng tôi có thể lặp qua chúng (sử dụng vòng lặp for trong trường hợp này).
Những loại nào có thể lặp lại trong Python?Ví dụ về các lần lặp bao gồm tất cả các loại trình tự (chẳng hạn như list , str và tuple ) và một số loại không phải trình tự như dict , đối tượng tệp và đối tượng của bất kỳ lớp nào bạn xác định bằng phương thức __iter__() hoặc phương thức __getitem__()
Đối tượng Python nào có thể lặp lại?Danh sách, bộ dữ liệu, từ điển và bộ đều là các đối tượng có thể lặp lại. Chúng là các thùng chứa có thể lặp lại mà bạn có thể lấy một trình vòng lặp từ. |