Bạn sẽ bắt đầu bằng việc so sánh một số mô hình khác nhau được các ngôn ngữ lập trình sử dụng để triển khai phép lặp xác định
Sau đó, bạn sẽ tìm hiểu về iterables và iterators, hai khái niệm tạo thành nền tảng của phép lặp xác định trong Python
Cuối cùng, bạn sẽ liên kết tất cả lại với nhau và tìm hiểu về vòng lặp
for in :
0 của PythonTải xuống miễn phí. Nhận một chương mẫu từ Thủ thuật Python. Cuốn sách chỉ cho bạn các phương pháp hay nhất về Python với các ví dụ đơn giản mà bạn có thể áp dụng ngay lập tức để viết mã Pythonic + đẹp hơn
Khảo sát về phép lặp xác định trong lập trình
Các vòng lặp xác định thường được gọi là vòng lặp
for in :
0 vì for in :
0 là từ khóa được sử dụng để giới thiệu chúng trong hầu hết các ngôn ngữ lập trình, bao gồm cả PythonTrong lịch sử, các ngôn ngữ lập trình đã cung cấp một số loại vòng lặp
for in :
0. Chúng được mô tả ngắn gọn trong các phần sauLoại bỏ các quảng cáoVòng lặp phạm vi số
Vòng lặp
for in :
0 cơ bản nhất là một câu lệnh phạm vi số đơn giản với các giá trị bắt đầu và kết thúc. Định dạng chính xác khác nhau tùy thuộc vào ngôn ngữ nhưng thường trông giống như thế nàyfor i = 1 to 10
Ở đây, phần thân của vòng lặp được thực hiện mười lần. Biến
for in :
7 nhận giá trị for in :
8 trong lần lặp đầu tiên, for in :
9 trong lần lặp thứ hai, v.v. Loại vòng lặp for in :
0 này được sử dụng trong các ngôn ngữ BASIC, Algol và PascalVòng lặp ba biểu thức
Một dạng khác của vòng lặp
for in :
0 được phổ biến bởi ngôn ngữ lập trình C có ba phần- Một khởi tạo
- Một biểu thức xác định một điều kiện kết thúc
- Một hành động được thực hiện ở cuối mỗi lần lặp
Loại vòng lặp này có dạng như sau
for [i = 1; i >> a = ['foo', 'bar', 'baz']
>>> for i in a:
.. print[i]
...
foo
bar
baz
2 tăng biến for in :
7. Nó gần tương đương với >>> a = ['foo', 'bar', 'baz']
>>> for i in a:
.. print[i]
...
foo
bar
baz
4 trong PythonVòng lặp này được hiểu như sau
- Khởi tạo
7 thànhfor in :
8for in :
- Tiếp tục lặp miễn là
7>>> a = ['foo', 'bar', 'baz'] >>> for i in a: .. print[i] ... foo bar baz
- Tăng
7 lênfor in :
8 sau mỗi lần lặp vòng lặpfor in :
Các vòng lặp
for in :
0 ba biểu thức rất phổ biến vì các biểu thức được chỉ định cho ba phần có thể gần như bất kỳ thứ gì, vì vậy điều này linh hoạt hơn một chút so với dạng phạm vi số đơn giản hơn được hiển thị ở trên. Các vòng lặp for in :
0 này cũng có trong các ngôn ngữ C++, Java, PHP và PerlVòng lặp dựa trên bộ sưu tập hoặc dựa trên Iterator
Loại vòng lặp này lặp qua một tập hợp các đối tượng, thay vì chỉ định các giá trị hoặc điều kiện số
for i in
Mỗi lần qua vòng lặp, biến
for in :
7 nhận giá trị của đối tượng tiếp theo trong >>> iter['foobar'] # String
>>> iter[['foo', 'bar', 'baz']] # List
>>> iter[['foo', 'bar', 'baz']] # Tuple
>>> iter[{'foo', 'bar', 'baz'}] # Set
>>> iter[{'foo': 1, 'bar': 2, 'baz': 3}] # Dict
3. Loại vòng lặp for in :
0 này được cho là khái quát và trừu tượng nhất. Perl và PHP cũng hỗ trợ loại vòng lặp này, nhưng nó được giới thiệu bởi từ khóa >>> iter['foobar'] # String
>>> iter[['foo', 'bar', 'baz']] # List
>>> iter[['foo', 'bar', 'baz']] # Tuple
>>> iter[{'foo', 'bar', 'baz'}] # Set
>>> iter[{'foo': 1, 'bar': 2, 'baz': 3}] # Dict
5 thay vì for in :
0Đọc thêm. Xem trang Wikipedia vòng lặp For để có cái nhìn sâu hơn về việc triển khai phép lặp xác định trên các ngôn ngữ lập trình
Vòng lặp for in :
0 của Python
for in :
Trong số các loại vòng lặp được liệt kê ở trên, Python chỉ thực hiện vòng lặp cuối cùng. lặp lại dựa trên bộ sưu tập. Thoạt nhìn, điều đó có vẻ giống như một thỏa thuận thô sơ, nhưng hãy yên tâm rằng việc triển khai phép lặp xác định của Python rất linh hoạt nên cuối cùng bạn sẽ không cảm thấy bị lừa
Trong thời gian ngắn, bạn sẽ tìm hiểu chi tiết về vòng lặp
for in :
0 của Python. Nhưng bây giờ, hãy bắt đầu với một nguyên mẫu và ví dụ nhanh, chỉ để làm quenVòng lặp
for in :
0 của Python trông như thế nàyfor in :
>>> iter[42] # Integer
Traceback [most recent call last]:
File "", line 1, in
iter[42]
TypeError: 'int' object is not iterable
>>> iter[3.1] # Float
Traceback [most recent call last]:
File "", line 1, in
iter[3.1]
TypeError: 'float' object is not iterable
>>> iter[len] # Built-in function
Traceback [most recent call last]:
File "", line 1, in
iter[len]
TypeError: 'builtin_function_or_method' object is not iterable
0 là một tập hợp các đối tượng—ví dụ: danh sách hoặc bộ. >>> iter[42] # Integer
Traceback [most recent call last]:
File "", line 1, in
iter[42]
TypeError: 'int' object is not iterable
>>> iter[3.1] # Float
Traceback [most recent call last]:
File "", line 1, in
iter[3.1]
TypeError: 'float' object is not iterable
>>> iter[len] # Built-in function
Traceback [most recent call last]:
File "", line 1, in
iter[len]
TypeError: 'builtin_function_or_method' object is not iterable
1 trong thân vòng lặp được biểu thị bằng dấu thụt đầu dòng, như với tất cả các cấu trúc điều khiển Python và được thực thi một lần cho mỗi mục trong >>> iter[42] # Integer
Traceback [most recent call last]:
File "", line 1, in
iter[42]
TypeError: 'int' object is not iterable
>>> iter[3.1] # Float
Traceback [most recent call last]:
File "", line 1, in
iter[3.1]
TypeError: 'float' object is not iterable
>>> iter[len] # Built-in function
Traceback [most recent call last]:
File "", line 1, in
iter[len]
TypeError: 'builtin_function_or_method' object is not iterable
0. Biến vòng lặp >>> iter[42] # Integer
Traceback [most recent call last]:
File "", line 1, in
iter[42]
TypeError: 'int' object is not iterable
>>> iter[3.1] # Float
Traceback [most recent call last]:
File "", line 1, in
iter[3.1]
TypeError: 'float' object is not iterable
>>> iter[len] # Built-in function
Traceback [most recent call last]:
File "", line 1, in
iter[len]
TypeError: 'builtin_function_or_method' object is not iterable
3 nhận giá trị của phần tử tiếp theo trong >>> iter[42] # Integer
Traceback [most recent call last]:
File "", line 1, in
iter[42]
TypeError: 'int' object is not iterable
>>> iter[3.1] # Float
Traceback [most recent call last]:
File "", line 1, in
iter[3.1]
TypeError: 'float' object is not iterable
>>> iter[len] # Built-in function
Traceback [most recent call last]:
File "", line 1, in
iter[len]
TypeError: 'builtin_function_or_method' object is not iterable
0 mỗi lần qua vòng lặpĐây là một ví dụ đại diện
>>>
>>> a = ['foo', 'bar', 'baz']
>>> for i in a:
.. print[i]
...
foo
bar
baz
Trong ví dụ này,
>>> iter[42] # Integer
Traceback [most recent call last]:
File "", line 1, in
iter[42]
TypeError: 'int' object is not iterable
>>> iter[3.1] # Float
Traceback [most recent call last]:
File "", line 1, in
iter[3.1]
TypeError: 'float' object is not iterable
>>> iter[len] # Built-in function
Traceback [most recent call last]:
File "", line 1, in
iter[len]
TypeError: 'builtin_function_or_method' object is not iterable
0 là danh sách >>> iter[42] # Integer
Traceback [most recent call last]:
File "", line 1, in
iter[42]
TypeError: 'int' object is not iterable
>>> iter[3.1] # Float
Traceback [most recent call last]:
File "", line 1, in
iter[3.1]
TypeError: 'float' object is not iterable
>>> iter[len] # Built-in function
Traceback [most recent call last]:
File "", line 1, in
iter[len]
TypeError: 'builtin_function_or_method' object is not iterable
6 và >>> iter[42] # Integer
Traceback [most recent call last]:
File "", line 1, in
iter[42]
TypeError: 'int' object is not iterable
>>> iter[3.1] # Float
Traceback [most recent call last]:
File "", line 1, in
iter[3.1]
TypeError: 'float' object is not iterable
>>> iter[len] # Built-in function
Traceback [most recent call last]:
File "", line 1, in
iter[len]
TypeError: 'builtin_function_or_method' object is not iterable
3 là biến for in :
7. Mỗi lần qua vòng lặp, for in :
7 nhận một mục liên tiếp trong >>> iter[42] # Integer
Traceback [most recent call last]:
File "", line 1, in
iter[42]
TypeError: 'int' object is not iterable
>>> iter[3.1] # Float
Traceback [most recent call last]:
File "", line 1, in
iter[3.1]
TypeError: 'float' object is not iterable
>>> iter[len] # Built-in function
Traceback [most recent call last]:
File "", line 1, in
iter[len]
TypeError: 'builtin_function_or_method' object is not iterable
6, do đó, >>> a = ['foo', 'bar', 'baz']
>>> itr = iter[a]
>>> itr
>>> next[itr]
'foo'
>>> next[itr]
'bar'
>>> next[itr]
'baz'
1 hiển thị các giá trị lần lượt là >>> a = ['foo', 'bar', 'baz']
>>> itr = iter[a]
>>> itr
>>> next[itr]
'foo'
>>> next[itr]
'bar'
>>> next[itr]
'baz'
2, >>> a = ['foo', 'bar', 'baz']
>>> itr = iter[a]
>>> itr
>>> next[itr]
'foo'
>>> next[itr]
'bar'
>>> next[itr]
'baz'
3 và >>> a = ['foo', 'bar', 'baz']
>>> itr = iter[a]
>>> itr
>>> next[itr]
'foo'
>>> next[itr]
'bar'
>>> next[itr]
'baz'
4. Một vòng lặp for in :
0 như thế này là cách Pythonic để xử lý các mục trong một lần lặpNhưng chính xác thì iterable là gì?
Loại bỏ các quảng cáoIterables
Trong Python, iterable có nghĩa là một đối tượng có thể được sử dụng trong phép lặp. Thuật ngữ này được sử dụng như
- Một tính từ. Một đối tượng có thể được mô tả là có thể lặp lại
- Một danh từ. Một đối tượng có thể được đặc trưng như một iterable
Nếu một đối tượng có thể lặp lại, nó có thể được chuyển đến hàm Python tích hợp sẵn
>>> a = ['foo', 'bar', 'baz']
>>> itr = iter[a]
>>> itr
>>> next[itr]
'foo'
>>> next[itr]
'bar'
>>> next[itr]
'baz'
7, hàm này trả về một thứ gọi là trình lặp. Có, thuật ngữ hơi lặp lại. Cố lên. Cuối cùng thì tất cả cũng thành côngMỗi đối tượng trong ví dụ sau là một iterable và trả về một số loại iterator khi được chuyển đến
>>> a = ['foo', 'bar', 'baz']
>>> itr = iter[a]
>>> itr
>>> next[itr]
'foo'
>>> next[itr]
'bar'
>>> next[itr]
'baz'
7>>>
>>> iter['foobar'] # String
>>> iter[['foo', 'bar', 'baz']] # List
>>> iter[['foo', 'bar', 'baz']] # Tuple
>>> iter[{'foo', 'bar', 'baz'}] # Set
>>> iter[{'foo': 1, 'bar': 2, 'baz': 3}] # Dict
Mặt khác, các loại đối tượng này không thể lặp lại
>>>
>>> iter[42] # Integer
Traceback [most recent call last]:
File "", line 1, in
iter[42]
TypeError: 'int' object is not iterable
>>> iter[3.1] # Float
Traceback [most recent call last]:
File "", line 1, in
iter[3.1]
TypeError: 'float' object is not iterable
>>> iter[len] # Built-in function
Traceback [most recent call last]:
File "", line 1, in
iter[len]
TypeError: 'builtin_function_or_method' object is not iterable
Tất cả các loại dữ liệu bạn đã gặp cho đến nay là loại bộ sưu tập hoặc bộ chứa đều có thể lặp lại. Chúng bao gồm chuỗi, , , dict, set và các loại
Nhưng đây không phải là những kiểu duy nhất mà bạn có thể lặp lại. Nhiều đối tượng được tích hợp vào Python hoặc được định nghĩa trong các mô-đun được thiết kế để có thể lặp lại. Ví dụ: các tệp đang mở trong Python có thể lặp lại. Như bạn sẽ sớm thấy trong phần hướng dẫn về tệp I/O, việc lặp qua một đối tượng tệp đang mở sẽ đọc dữ liệu từ tệp
Trên thực tế, hầu hết mọi đối tượng trong Python đều có thể được lặp lại. Ngay cả các đối tượng do người dùng định nghĩa cũng có thể được thiết kế theo cách mà chúng có thể được lặp đi lặp lại. [Bạn sẽ tìm hiểu cách thực hiện điều đó trong bài viết sắp tới về lập trình hướng đối tượng. ]
vòng lặp
Được rồi, bây giờ bạn đã biết ý nghĩa của việc một đối tượng có thể lặp lại và bạn biết cách sử dụng
>>> a = ['foo', 'bar', 'baz']
>>> itr = iter[a]
>>> itr
>>> next[itr]
'foo'
>>> next[itr]
'bar'
>>> next[itr]
'baz'
7 để lấy một trình vòng lặp từ đối tượng đó. Khi bạn đã có một iterator, bạn có thể làm gì với nó?Trình lặp về cơ bản là trình tạo giá trị tạo ra các giá trị liên tiếp từ đối tượng có thể lặp được liên kết của nó. Hàm tích hợp
>>> next[itr]
Traceback [most recent call last]:
File "", line 1, in
next[itr]
StopIteration
0 được sử dụng để lấy giá trị tiếp theo từ trong iteratorĐây là một ví dụ sử dụng cùng một danh sách như trên
>>>
>>> a = ['foo', 'bar', 'baz']
>>> itr = iter[a]
>>> itr
>>> next[itr]
'foo'
>>> next[itr]
'bar'
>>> next[itr]
'baz'
Trong ví dụ này,
>>> iter[42] # Integer
Traceback [most recent call last]:
File "", line 1, in
iter[42]
TypeError: 'int' object is not iterable
>>> iter[3.1] # Float
Traceback [most recent call last]:
File "", line 1, in
iter[3.1]
TypeError: 'float' object is not iterable
>>> iter[len] # Built-in function
Traceback [most recent call last]:
File "", line 1, in
iter[len]
TypeError: 'builtin_function_or_method' object is not iterable
6 là một danh sách có thể lặp lại và >>> next[itr]
Traceback [most recent call last]:
File "", line 1, in
next[itr]
StopIteration
2 là trình vòng lặp được liên kết, thu được với >>> a = ['foo', 'bar', 'baz']
>>> itr = iter[a]
>>> itr
>>> next[itr]
'foo'
>>> next[itr]
'bar'
>>> next[itr]
'baz'
7. Mỗi cuộc gọi >>> next[itr]
Traceback [most recent call last]:
File "", line 1, in
next[itr]
StopIteration
4 nhận được giá trị tiếp theo từ >>> next[itr]
Traceback [most recent call last]:
File "", line 1, in
next[itr]
StopIteration
2Lưu ý cách một iterator giữ trạng thái bên trong. Nó biết những giá trị nào đã được lấy, vì vậy khi bạn gọi
>>> next[itr]
Traceback [most recent call last]:
File "", line 1, in
next[itr]
StopIteration
0, nó sẽ biết giá trị nào sẽ trả về tiếp theoĐiều gì xảy ra khi iterator hết giá trị?
>>>
>>> next[itr]
Traceback [most recent call last]:
File "", line 1, in
next[itr]
StopIteration
Nếu tất cả các giá trị từ một iterator đã được trả về, một cuộc gọi
>>> next[itr]
Traceback [most recent call last]:
File "", line 1, in
next[itr]
StopIteration
0 tiếp theo sẽ tạo ra một ngoại lệ >>> next[itr]
Traceback [most recent call last]:
File "", line 1, in
next[itr]
StopIteration
9. 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ôngBạn chỉ có thể lấy các giá trị từ một trình vòng lặp theo một hướng. Bạn không thể đi lùi. Không có chức năng
>>> a
['foo', 'bar', 'baz']
>>> itr1 = iter[a]
>>> itr2 = iter[a]
>>> next[itr1]
'foo'
>>> next[itr1]
'bar'
>>> next[itr1]
'baz'
>>> next[itr2]
'foo'
0. Nhưng bạn có thể định nghĩa hai trình vòng lặp độc lập trên cùng một đối tượng có thể lặp lại>>>
>>> a
['foo', 'bar', 'baz']
>>> itr1 = iter[a]
>>> itr2 = iter[a]
>>> next[itr1]
'foo'
>>> next[itr1]
'bar'
>>> next[itr1]
'baz'
>>> next[itr2]
'foo'
Ngay cả khi iterator
>>> a
['foo', 'bar', 'baz']
>>> itr1 = iter[a]
>>> itr2 = iter[a]
>>> next[itr1]
'foo'
>>> next[itr1]
'bar'
>>> next[itr1]
'baz'
>>> next[itr2]
'foo'
1 đã ở cuối danh sách, thì >>> a
['foo', 'bar', 'baz']
>>> itr1 = iter[a]
>>> itr2 = iter[a]
>>> next[itr1]
'foo'
>>> next[itr1]
'bar'
>>> next[itr1]
'baz'
>>> next[itr2]
'foo'
2 vẫn ở đầu. Mỗi iterator duy trì trạng thái bên trong của chính nó, độc lập với các iterator khácNếu bạn muốn lấy tất cả các giá trị từ một trình vòng lặp cùng một lúc, bạn có thể sử dụng hàm
>>> a
['foo', 'bar', 'baz']
>>> itr1 = iter[a]
>>> itr2 = iter[a]
>>> next[itr1]
'foo'
>>> next[itr1]
'bar'
>>> next[itr1]
'baz'
>>> next[itr2]
'foo'
3 tích hợp. Trong số các cách sử dụng có thể khác, >>> a
['foo', 'bar', 'baz']
>>> itr1 = iter[a]
>>> itr2 = iter[a]
>>> next[itr1]
'foo'
>>> next[itr1]
'bar'
>>> next[itr1]
'baz'
>>> next[itr2]
'foo'
3 lấy một trình vòng lặp làm đối số của nó và trả về một danh sách bao gồm tất cả các giá trị mà trình vòng lặp mang lại>>>
for [i = 1; i >> a
['foo', 'bar', 'baz']
>>> itr1 = iter[a]
>>> itr2 = iter[a]
>>> next[itr1]
'foo'
>>> next[itr1]
'bar'
>>> next[itr1]
'baz'
>>> next[itr2]
'foo'
5 và >>> a
['foo', 'bar', 'baz']
>>> itr1 = iter[a]
>>> itr2 = iter[a]
>>> next[itr1]
'foo'
>>> next[itr1]
'bar'
>>> next[itr1]
'baz'
>>> next[itr2]
'foo'
6 tích hợp lần lượt trả về một bộ và một tập hợp từ tất cả các giá trị mà trình vòng lặp tạo ra>>>
for [i = 1; i >> next[itr]
Traceback [most recent call last]:
File "", line 1, in
next[itr]
StopIteration
0. Các mục không được tạo cho đến khi chúng được yêu cầuKhi bạn sử dụng
>>> a
['foo', 'bar', 'baz']
>>> itr1 = iter[a]
>>> itr2 = iter[a]
>>> next[itr1]
'foo'
>>> next[itr1]
'bar'
>>> next[itr1]
'baz'
>>> next[itr2]
'foo'
3, >>> a
['foo', 'bar', 'baz']
>>> itr1 = iter[a]
>>> itr2 = iter[a]
>>> next[itr1]
'foo'
>>> next[itr1]
'bar'
>>> next[itr1]
'baz'
>>> next[itr2]
'foo'
5 hoặc tương tự, bạn đang buộc trình vòng lặp tạo tất cả các giá trị của nó cùng một lúc, vì vậy tất cả chúng có thể được trả về. Nếu tổng số đối tượng mà trình vòng lặp trả về rất lớn, có thể mất nhiều thời gianTrên thực tế, có thể tạo một trình lặp trong Python trả về một chuỗi đối tượng vô tận bằng cách sử dụng các hàm tạo và
for [i = 1; i >> a = ['foo', 'bar', 'baz']
>>> itr = iter[a]
>>> itr
>>> next[itr]
'foo'
>>> next[itr]
'bar'
>>> next[itr]
'baz'
7Hàm tích hợp được sử dụng để lấy một trình vòng lặp từ một Bây giờ, hãy xem xét lại vòng lặp
for in :
0 đơn giản được trình bày ở phần đầu của hướng dẫn này>>>
>>> a = ['foo', 'bar', 'baz']
>>> for i in a:
.. print[i]
...
foo
bar
baz
Vòng lặp này có thể được mô tả hoàn toàn bằng các khái niệm bạn vừa học về. Để thực hiện phép lặp vòng lặp
for in :
0 này mô tả, Python thực hiện như sau- Gọi
7 để lấy iterator cho>>> a = ['foo', 'bar', 'baz'] >>> itr = iter[a] >>> itr >>> next[itr] 'foo' >>> next[itr] 'bar' >>> next[itr] 'baz'
6>>> iter[42] # Integer Traceback [most recent call last]: File "", line 1, in iter[42] TypeError: 'int' object is not iterable >>> iter[3.1] # Float Traceback [most recent call last]: File "", line 1, in iter[3.1] TypeError: 'float' object is not iterable >>> iter[len] # Built-in function Traceback [most recent call last]: File "", line 1, in iter[len] TypeError: 'builtin_function_or_method' object is not iterable
- Gọi liên tục _______55_______0 để lấy lần lượt từng mục từ iterator
- Chấm dứt vòng lặp khi
0 tăng ngoại lệ>>> next[itr] Traceback [most recent call last]: File "", line 1, in next[itr] StopIteration
9>>> next[itr] Traceback [most recent call last]: File "", line 1, in next[itr] StopIteration
Thân vòng lặp được thực thi một lần cho mỗi mục
>>> next[itr]
Traceback [most recent call last]:
File "", line 1, in
next[itr]
StopIteration
0 trả về, với biến vòng lặp for in :
7 được đặt thành mục đã cho cho mỗi lần lặpChuỗi sự kiện này được tóm tắt trong sơ đồ sau
Có lẽ điều này có vẻ giống như rất nhiều công việc khỉ không cần thiết, nhưng lợi ích là đáng kể. Python xử lý việc lặp qua tất cả các lần lặp theo cách chính xác theo cách này và trong Python, rất nhiều lần lặp và trình vòng lặp
Nhiều đối tượng tích hợp và thư viện có thể lặp lại
Có một mô-đun Thư viện chuẩn có tên là
7, vì vậy bạn biết rằng các từ điển phải có thể lặp lại được. Điều gì xảy ra khi bạn lặp qua một từ điển?for [i = 1; i >> a = ['foo', 'bar', 'baz'] >>> itr = iter[a] >>> itr >>> next[itr] 'foo' >>> next[itr] 'bar' >>> next[itr] 'baz'
>>>
for [i = 1; i >>
for [i = 1; i >
for [i = 1; i >>
for [i = 1; i >
for [i = 1; i >>
3 hoặcfor [i = 1; i a ['foo', 'bar', 'baz'] >>> itr1 = iter[a] >>> itr2 = iter[a] >>> next[itr1] 'foo' >>> next[itr1] 'bar' >>> next[itr1] 'baz' >>> next[itr2] 'foo'
5. Trong phiên REPL, đó có thể là một cách thuận tiện để hiển thị nhanh các giá trị>>> a ['foo', 'bar', 'baz'] >>> itr1 = iter[a] >>> itr2 = iter[a] >>> next[itr1] 'foo' >>> next[itr1] 'bar' >>> next[itr1] 'baz' >>> next[itr2] 'foo'
>>>
2for i in
Tuy nhiên, khi
3 hoặcfor [i = 1; i >> a ['foo', 'bar', 'baz'] >>> itr1 = iter[a] >>> itr2 = iter[a] >>> next[itr1] 'foo' >>> next[itr1] 'bar' >>> next[itr1] 'baz' >>> next[itr2] 'foo'
5 theo cách này thường được coi là thông lệ kém. Giống như các trình vòng lặp, các đối tượng>>> a ['foo', 'bar', 'baz'] >>> itr1 = iter[a] >>> itr2 = iter[a] >>> next[itr1] 'foo' >>> next[itr1] 'bar' >>> next[itr1] 'baz' >>> next[itr2] 'foo'
3 hoặcfor [i = 1; i >> a ['foo', 'bar', 'baz'] >>> itr1 = iter[a] >>> itr2 = iter[a] >>> next[itr1] 'foo' >>> next[itr1] 'bar' >>> next[itr1] 'baz' >>> next[itr2] 'foo'
5 trên đối tượng>>> a ['foo', 'bar', 'baz'] >>> itr1 = iter[a] >>> itr2 = iter[a] >>> next[itr1] 'foo' >>> next[itr1] 'bar' >>> next[itr1] 'baz' >>> next[itr2] 'foo'
for [i = 1; i
4for i in
Tất cả các tham số được chỉ định cho
for [i = 1; i