Hướng dẫn how do you make a python function iterable? - làm thế nào để bạn làm cho một chức năng python có thể lặp lại?

Tôi đã viết một bài viết trước đây về giao thức Iterator cung cấp năng lượng cho các vòng lặp Python, ____54. Một điều tôi rời khỏi bài viết đó là làm thế nào để tạo ra các trình lặp của riêng bạn.how to make your own iterators.

Show

Trong bài viết này, tôi sẽ thảo luận về lý do tại sao bạn muốn tạo ra các trình lặp của riêng mình và sau đó chỉ cho bạn cách làm như vậy.

    Người lặp là gì?

    Đầu tiên, hãy để nhanh chóng giải quyết những gì một người lặp là gì. Để giải thích chi tiết hơn nhiều, hãy xem xét xem vòng lặp của tôi nói chuyện tốt hơn hoặc đọc bài viết dựa trên cuộc nói chuyện.

    Một điều đó là bất cứ điều gì bạn có thể lặp lại.iterable is anything you’re able to loop over.

    Một iterator là đối tượng thực hiện lặp lại thực tế.iterator is the object that does the actual iterating.

    Bạn có thể nhận được một trình lặp từ bất kỳ điều gì có thể sử dụng bằng cách gọi chức năng

    >>> from itertools import repeat
    >>> lots_of_fours = repeat(4, times=100_000_000)
    
    5 tích hợp trên ITEBELLE.

    1
    2
    3
    
    >>> favorite_numbers = [6, 57, 4, 7, 68, 95]
    >>> iter(favorite_numbers)
    <list_iterator object at 0x7fe8e5623160>
    

    Bạn có thể sử dụng chức năng

    >>> from itertools import repeat
    >>> lots_of_fours = repeat(4, times=100_000_000)
    
    6 tích hợp trên trình lặp để lấy mục tiếp theo từ nó (bạn sẽ nhận được ngoại lệ
    >>> from itertools import repeat
    >>> lots_of_fours = repeat(4, times=100_000_000)
    
    7 nếu không còn mục nữa).

    1
    2
    3
    4
    5
    6
    
    >>> favorite_numbers = [6, 57, 4, 7, 68, 95]
    >>> my_iterator = iter(favorite_numbers)
    >>> next(my_iterator)
    6
    >>> next(my_iterator)
    57
    

    Có một quy tắc nữa về các trình lặp lại làm cho mọi thứ trở nên thú vị: iterators cũng là người lặp lại và máy lặp của họ là chính họ. Tôi giải thích hậu quả của điều đó đầy đủ hơn trong cuộc nói chuyện tốt hơn mà tôi đã đề cập ở trên.iterators are also iterables and their iterator is themselves. I explain the consequences of that more fully in that Loop Better talk I mentioned above.

    Tại sao tạo ra một người lặp?

    Tererators cho phép bạn tạo ra một sự khác biệt tính toán các mục của nó khi nó đi. Điều đó có nghĩa là bạn có thể làm cho các đồ lặp lười biếng, trong đó họ không xác định mục tiếp theo của họ là gì cho đến khi bạn hỏi họ.lazy, in that they don’t determine what their next item is until you ask them for it.

    Sử dụng trình lặp thay vì danh sách, bộ hoặc cấu trúc dữ liệu khác đôi khi có thể cho phép chúng tôi lưu bộ nhớ. Ví dụ: chúng ta có thể sử dụng

    >>> from itertools import repeat
    >>> lots_of_fours = repeat(4, times=100_000_000)
    
    8 để tạo ra một điều đáng tin cậy cung cấp 100 triệu ____ 59 59 cho chúng tôi:

    1
    2
    
    >>> from itertools import repeat
    >>> lots_of_fours = repeat(4, times=100_000_000)
    

    Trình lặp này chiếm 56 byte bộ nhớ trên máy của tôi:

    1
    2
    3
    
    >>> favorite_numbers = [6, 57, 4, 7, 68, 95]
    >>> iter(favorite_numbers)
    <list_iterator object at 0x7fe8e5623160>
    

    Bạn có thể sử dụng chức năng

    >>> from itertools import repeat
    >>> lots_of_fours = repeat(4, times=100_000_000)
    
    6 tích hợp trên trình lặp để lấy mục tiếp theo từ nó (bạn sẽ nhận được ngoại lệ
    >>> from itertools import repeat
    >>> lots_of_fours = repeat(4, times=100_000_000)
    
    7 nếu không còn mục nữa).

    1
    2
    3
    4
    5
    6
    
    >>> favorite_numbers = [6, 57, 4, 7, 68, 95]
    >>> my_iterator = iter(favorite_numbers)
    >>> next(my_iterator)
    6
    >>> next(my_iterator)
    57
    

    Có một quy tắc nữa về các trình lặp lại làm cho mọi thứ trở nên thú vị: iterators cũng là người lặp lại và máy lặp của họ là chính họ. Tôi giải thích hậu quả của điều đó đầy đủ hơn trong cuộc nói chuyện tốt hơn mà tôi đã đề cập ở trên.

    1
    2
    
    >>> from itertools import repeat
    >>> lots_of_fours = repeat(4, times=100_000_000)
    

    Trình lặp này chiếm 56 byte bộ nhớ trên máy của tôi:

    >>> import sys
    >>> sys.getsizeof(lots_of_fours)
    56
    
    iterators can save us memory, but iterators can sometimes save us time also.

    Một danh sách tương đương 100 triệu ____ 59 59 chiếm nhiều megabyte bộ nhớ:iterators have abilities that other iterables don’t. For example, the laziness of iterators can be used to make iterables that have an unknown length. In fact, you can even make infinitely long iterators.

    ________số 8

    >>> lots_of_fours = [4] * 100_000_000
    >>> import sys
    >>> sys.getsizeof(lots_of_fours)
    800000064
    
    Trong khi trình lặp có thể tiết kiệm bộ nhớ, họ cũng có thể tiết kiệm thời gian. Ví dụ: nếu bạn muốn in ra dòng đầu tiên của tệp nhật ký 10 gigabyte, bạn có thể làm điều này:

    >>> favorite_numbers = [6, 57, 4, 7, 68, 95]
    >>> iter(favorite_numbers)
    <list_iterator object at 0x7fe8e5623160>
    
    1

    Các đối tượng tệp trong Python được thực hiện dưới dạng lặp. Khi bạn lặp qua một tệp, dữ liệu được đọc vào bộ nhớ một dòng tại một thời điểm. Thay vào đó, nếu chúng ta sử dụng phương thức 1 2 3 1 để lưu trữ tất cả các dòng trong bộ nhớ, chúng ta có thể hết bộ nhớ hệ thống.

    Vì vậy, các trình lặp có thể lưu bộ nhớ của chúng tôi, nhưng đôi khi có thể tiết kiệm thời gian cho chúng tôi.

    Ngoài ra, các trình lặp có khả năng mà các phép lặp khác don don. Ví dụ, sự lười biếng của các trình lặp có thể được sử dụng để làm cho các vòng lặp có độ dài không xác định. Trong thực tế, bạn thậm chí có thể tạo ra các trình lặp dài vô hạn.

    Ví dụ, tiện ích

    1
    2
    3
    
    2 sẽ cung cấp cho chúng tôi một trình lặp sẽ cung cấp mỗi số từ
    1
    2
    3
    
    3 trở lên khi chúng tôi lặp qua nó:

    >>> favorite_numbers = [6, 57, 4, 7, 68, 95]
    >>> iter(favorite_numbers)
    <list_iterator object at 0x7fe8e5623160>
    
    2
    >>> favorite_numbers = [6, 57, 4, 7, 68, 95]
    >>> iter(favorite_numbers)
    <list_iterator object at 0x7fe8e5623160>
    
    3

    Đối tượng

    1
    2
    3
    
    2 đó về cơ bản là một điều không thể đi được vô hạn. Và nó được thực hiện như một người lặp.

    Làm một trình lặp: Cách hướng đối tượng

    Vì vậy, chúng tôi đã thấy rằng các trình lặp có thể tiết kiệm bộ nhớ của chúng tôi, tiết kiệm thời gian CPU của chúng tôi và mở khóa các khả năng mới cho chúng tôi.Hãy để Lừa làm cho các phép lặp của riêng chúng tôi. Chúng tôi sẽ bắt đầu phát minh lại đối tượng
    1
    2
    3
    
    2.

    Ở đây, một trình lặp được thực hiện bằng một lớp:

    >>> favorite_numbers = [6, 57, 4, 7, 68, 95]
    >>> iter(favorite_numbers)
    <list_iterator object at 0x7fe8e5623160>
    
    4our object is an iterator, so should return ourself. Therefore our
    1
    2
    3
    4
    
    0 object returns
    1
    2
    3
    4
    
    1 from its
    1
    2
    3
    
    8 method because it is its own iterator.

    >>> favorite_numbers = [6, 57, 4, 7, 68, 95]
    >>> iter(favorite_numbers)
    <list_iterator object at 0x7fe8e5623160>
    
    5

    Lớp này có trình khởi tạo khởi tạo số hiện tại của chúng tôi thành

    1
    2
    3
    
    3 (hoặc bất cứ điều gì được truyền dưới dạng
    1
    2
    3
    
    7). Những thứ làm cho lớp này có thể sử dụng được như một trình lặp lại là các phương pháp
    1
    2
    3
    
    8 và
    1
    2
    3
    
    9.

    Vì vậy, chúng tôi đã thấy rằng các trình lặp có thể tiết kiệm bộ nhớ của chúng tôi, tiết kiệm thời gian CPU của chúng tôi và mở khóa các khả năng mới cho chúng tôi.Hãy để Lừa làm cho các phép lặp của riêng chúng tôi. Chúng tôi sẽ bắt đầu phát minh lại đối tượng
    1
    2
    3
    
    2.

    Ở đây, một trình lặp được thực hiện bằng một lớp:

    >>> favorite_numbers = [6, 57, 4, 7, 68, 95]
    >>> iter(favorite_numbers)
    <list_iterator object at 0x7fe8e5623160>
    
    4
    >>> favorite_numbers = [6, 57, 4, 7, 68, 95]
    >>> iter(favorite_numbers)
    <list_iterator object at 0x7fe8e5623160>
    
    5

    Lớp này có trình khởi tạo khởi tạo số hiện tại của chúng tôi thành

    1
    2
    3
    
    3 (hoặc bất cứ điều gì được truyền dưới dạng
    1
    2
    3
    
    7). Những thứ làm cho lớp này có thể sử dụng được như một trình lặp lại là các phương pháp
    1
    2
    3
    
    8 và
    1
    2
    3
    
    9.

    Máy phát điện: Cách dễ dàng để tạo ra một iterator

    Những cách dễ nhất để tạo ra các trình lặp của chúng ta trong Python là tạo ra một máy phát điện.

    Có hai cách để tạo ra các máy phát điện trong Python.

    Đưa ra danh sách các số này:

    1
    2
    3
    4
    5
    6
    
    2
    1
    2
    3
    4
    5
    6
    
    3

    Chúng ta có thể tạo ra một trình tạo sẽ cung cấp cho chúng ta tất cả các hình vuông của những con số này như thế này:

    >>> favorite_numbers = [6, 57, 4, 7, 68, 95]
    >>> iter(favorite_numbers)
    <list_iterator object at 0x7fe8e5623160>
    
    6
    1
    2
    3
    4
    5
    6
    
    5

    Hoặc chúng ta có thể làm cho cùng một trình tạo như thế này:

    1
    2
    3
    4
    5
    6
    
    2
    1
    2
    3
    4
    5
    6
    
    3

    Chúng ta có thể tạo ra một trình tạo sẽ cung cấp cho chúng ta tất cả các hình vuông của những con số này như thế này:generator function and the second one is called a generator expression.

    >>> favorite_numbers = [6, 57, 4, 7, 68, 95]
    >>> iter(favorite_numbers)
    <list_iterator object at 0x7fe8e5623160>
    
    6

    1
    2
    3
    4
    5
    6
    
    5
    Hoặc chúng ta có thể làm cho cùng một trình tạo như thế này:

    1
    2
    3
    4
    5
    6
    
    7

    Cái đầu tiên được gọi là hàm máy phát và mô hình thứ hai được gọi là biểu thức máy phát.

    • Cả hai đối tượng máy phát này hoạt động theo cùng một cách. Cả hai đều có một loại
      1
      2
      3
      4
      
      9 và họ là cả hai lần lặp lại cung cấp bình phương của các số trong danh sách số của chúng tôi.generator, also called a generator object, is an iterator whose type is
      1
      2
      3
      4
      
      9
    • 1
      2
      3
      4
      5
      6
      
      generator function is a special syntax that allows us to make a function which returns a generator object when we call it
    • 1
      2
      3
      4
      5
      6
      
      9generator expression is a comprehension-like syntax that allows you to create a generator object inline

    Chúng tôi sẽ nói về cả hai cách tiếp cận này để tạo ra một máy phát điện, nhưng trước tiên, hãy để nói về thuật ngữ.

    Từ Gener Trình tạo trực tuyến được sử dụng theo một vài cách trong Python:

    Một trình tạo, còn được gọi là đối tượng máy phát, là một trình lặp có loại là

    1
    2
    3
    4
    
    9

    Hàm trình tạo là một cú pháp đặc biệt cho phép chúng ta tạo một hàm trả về đối tượng Trình tạo khi chúng ta gọi nó

    Biểu thức trình tạo là một cú pháp giống như hiểu cho phép bạn tạo một đối tượng máy phát nội tuyếnVới thuật ngữ đó, chúng ta hãy xem xét từng điều một cách riêng lẻ. Chúng tôi sẽ xem xét các chức năng của máy phát điện đầu tiên.

    Chức năng máy phát điệngenerator function, meaning it will return a generator object when called. That generator object can be looped over to execute it until a

    >>> lots_of_fours = [4] * 100_000_000
    >>> import sys
    >>> sys.getsizeof(lots_of_fours)
    800000064
    
    1 statement is hit:

    Các chức năng của máy phát điện được phân biệt với các hàm cũ đơn giản bởi thực tế là chúng có một hoặc nhiều câu lệnh
    >>> lots_of_fours = [4] * 100_000_000
    >>> import sys
    >>> sys.getsizeof(lots_of_fours)
    800000064
    
    1.
    Thông thường khi bạn gọi một hàm, mã của nó được thực thi:

    >>> favorite_numbers = [6, 57, 4, 7, 68, 95]
    >>> iter(favorite_numbers)
    <list_iterator object at 0x7fe8e5623160>
    
    2

    >>> favorite_numbers = [6, 57, 4, 7, 68, 95]
    >>> my_iterator = iter(favorite_numbers)
    >>> next(my_iterator)
    6
    >>> next(my_iterator)
    57
    
    1

    >>> favorite_numbers = [6, 57, 4, 7, 68, 95]
    >>> iter(favorite_numbers)
    <list_iterator object at 0x7fe8e5623160>
    
    6
    1
    2
    3
    4
    5
    6
    
    5

    Hoặc chúng ta có thể làm cho cùng một trình tạo như thế này:

    >>> favorite_numbers = [6, 57, 4, 7, 68, 95]
    >>> iter(favorite_numbers)
    <list_iterator object at 0x7fe8e5623160>
    
    6
    1
    2
    3
    4
    5
    6
    
    5

    Hoặc chúng ta có thể làm cho cùng một trình tạo như thế này:

    1
    2
    3
    4
    5
    6
    
    7
    Cái đầu tiên được gọi là hàm máy phát và mô hình thứ hai được gọi là biểu thức máy phát.

    Cả hai đối tượng máy phát này hoạt động theo cùng một cách. Cả hai đều có một loại

    1
    2
    3
    4
    
    9 và họ là cả hai lần lặp lại cung cấp bình phương của các số trong danh sách số của chúng tôi.

    1 2 3 4 5 6

    1
    2
    3
    4
    5
    6
    
    9

    Chúng tôi sẽ nói về cả hai cách tiếp cận này để tạo ra một máy phát điện, nhưng trước tiên, hãy để nói về thuật ngữ.

    >>> favorite_numbers = [6, 57, 4, 7, 68, 95]
    >>> iter(favorite_numbers)
    <list_iterator object at 0x7fe8e5623160>
    
    6
    1
    2
    3
    4
    5
    6
    
    5

    Hoặc chúng ta có thể làm cho cùng một trình tạo như thế này:

    >>> favorite_numbers = [6, 57, 4, 7, 68, 95]
    >>> iter(favorite_numbers)
    <list_iterator object at 0x7fe8e5623160>
    
    6
    1
    2
    3
    4
    5
    6
    
    5

    Hoặc chúng ta có thể làm cho cùng một trình tạo như thế này:generator expression gives us a generator object back:

    1
    2
    3
    4
    5
    6
    
    5
    Hoặc chúng ta có thể làm cho cùng một trình tạo như thế này:

    1
    2
    3
    4
    5
    6
    
    7

    Cái đầu tiên được gọi là hàm máy phát và mô hình thứ hai được gọi là biểu thức máy phát.

    Cả hai đối tượng máy phát này hoạt động theo cùng một cách. Cả hai đều có một loại
    1
    2
    3
    4
    
    9 và họ là cả hai lần lặp lại cung cấp bình phương của các số trong danh sách số của chúng tôi.
    1
    2
    3
    4
    5
    6
    

    1
    2
    3
    4
    5
    6
    
    9

    1
    2
    3
    4
    5
    6
    
    5
    Hoặc chúng ta có thể làm cho cùng một trình tạo như thế này:

    1
    2
    3
    4
    5
    6
    
    7you can’t create a generator expression to replace it.

    Cái đầu tiên được gọi là hàm máy phát và mô hình thứ hai được gọi là biểu thức máy phát.we can’t use a generator expression for our previous example (our example that re-implements

    1
    2
    3
    
    2).

    Cả hai đối tượng máy phát này hoạt động theo cùng một cách. Cả hai đều có một loại 1 2 3 4 9 và họ là cả hai lần lặp lại cung cấp bình phương của các số trong danh sách số của chúng tôi.

    1
    2
    3
    4
    5
    6
    

    1
    2
    3
    4
    5
    6
    
    9

    Chúng tôi sẽ nói về cả hai cách tiếp cận này để tạo ra một máy phát điện, nhưng trước tiên, hãy để nói về thuật ngữ.

    Hướng dẫn how do you make a python function iterable? - làm thế nào để bạn làm cho một chức năng python có thể lặp lại?

    Từ Gener Trình tạo trực tuyến được sử dụng theo một vài cách trong Python:

    Một trình tạo, còn được gọi là đối tượng máy phát, là một trình lặp có loại là

    1
    2
    3
    4
    
    9generator comprehension instead of generator expression. That’s not technically the correct name, but if you say it everyone will know what you’re talking about. Ned Batchelder actually proposed that we should all start calling generator expressions generator comprehensions and I tend to agree that this would be a clearer name.

    Vì vậy, những gì là cách tốt nhất để làm một người lặp?

    Để tạo một trình lặp, bạn có thể tạo một lớp Iterator, hàm trình tạo hoặc biểu thức trình tạo. Cách nào là cách tốt nhất mặc dù?

    Biểu thức của máy phát rất cô đọng, nhưng chúng không linh hoạt như các chức năng của máy phát. Các hàm của máy phát là linh hoạt, nhưng nếu bạn cần gắn các phương thức hoặc thuộc tính bổ sung vào đối tượng iterator của mình, bạn có thể cần phải chuyển sang sử dụng lớp Iterator.very succinct, but they’re not nearly as flexible as generator functions. Generator functions are flexible, but if you need to attach extra methods or attributes to your iterator object, you’ll probably need to switch to using an iterator class.

    Tôi đã khuyên bạn nên tiếp cận với các biểu thức của Trình tạo giống như cách bạn tiếp cận với sự hiểu biết trong danh sách. Nếu bạn đang thực hiện một thao tác ánh xạ hoặc lọc đơn giản, biểu thức máy phát là một giải pháp tuyệt vời. Nếu bạn làm điều gì đó tinh vi hơn một chút, bạn có thể cần một chức năng máy phát.mapping or filtering operation, a generator expression is a great solution. If you’re doing something a bit more sophisticated, you’ll likely need a generator function.

    Tôi đã khuyên bạn nên sử dụng các chức năng của máy phát giống như cách bạn sử dụng các vòng lặp

    >>> from itertools import repeat
    >>> lots_of_fours = repeat(4, times=100_000_000)
    
    4 nối vào danh sách. Ở mọi nơi bạn nhìn thấy một phương thức
    >>> favorite_numbers = [6, 57, 4, 7, 68, 95]
    >>> iter(favorite_numbers)
    <list_iterator object at 0x7fe8e5623160>
    
    05, bạn thường thấy một câu lệnh
    >>> lots_of_fours = [4] * 100_000_000
    >>> import sys
    >>> sys.getsizeof(lots_of_fours)
    800000064
    
    1 thay thế.

    Và tôi nói rằng bạn hầu như không bao giờ nên tạo một lớp Iterator. Nếu bạn thấy bạn cần một lớp Iterator, hãy thử viết một hàm trình tạo thực hiện những gì bạn cần và xem cách so sánh với lớp Iterator của bạn.almost never create an iterator class. If you find you need an iterator class, try to write a generator function that does what you need and see how it compares to your iterator class.

    Máy phát điện cũng có thể giúp khi thực hiện lặp lại

    Bạn có thể thấy các lớp học Iterator trong tự nhiên, nhưng hiếm khi có cơ hội tốt để tự viết.

    Mặc dù nó rất hiếm khi tạo ra lớp Iterator của riêng bạn, nhưng nó không phải là bất thường để tạo ra lớp học của riêng bạn. Và các lớp ITerable yêu cầu một phương thức

    1
    2
    3
    
    8 trả về một trình lặp. Vì các trình tạo là cách dễ dàng để tạo trình lặp, chúng tôi có thể sử dụng hàm máy phát hoặc biểu thức trình tạo để tạo các phương thức
    1
    2
    3
    
    8 của chúng tôi.

    Ví dụ, ở đây, một điều đáng tin cậy cung cấp tọa độ X-Y:

    1
    2
    3
    4
    5
    6
    
    >>> from itertools import repeat
    >>> lots_of_fours = repeat(4, times=100_000_000)
    
    1

    Lưu ý rằng lớp

    >>> favorite_numbers = [6, 57, 4, 7, 68, 95]
    >>> iter(favorite_numbers)
    <list_iterator object at 0x7fe8e5623160>
    
    09 của chúng tôi ở đây tạo ra một thứ có thể được gọi là (không phải là một iterator). Điều đó có nghĩa là phương thức
    1
    2
    3
    
    8 của chúng tôi phải trả về một trình lặp. Cách dễ nhất để tạo ra một trình lặp là bằng cách tạo chức năng máy phát, vì vậy mà chỉ là những gì chúng tôi đã làm.iterable when called (not an iterator). That means our
    1
    2
    3
    
    8 method must return an iterator. The easiest way to create an iterator is by making a generator function, so that’s just what we did.

    Chúng tôi đã bị mắc kẹt

    >>> lots_of_fours = [4] * 100_000_000
    >>> import sys
    >>> sys.getsizeof(lots_of_fours)
    800000064
    
    1 trong
    1
    2
    3
    
    8 của chúng tôi để biến nó thành một hàm máy phát và bây giờ lớp
    >>> favorite_numbers = [6, 57, 4, 7, 68, 95]
    >>> iter(favorite_numbers)
    <list_iterator object at 0x7fe8e5623160>
    
    09 của chúng tôi có thể được lặp lại, giống như bất kỳ điều gì khác.

    1
    2
    3
    4
    5
    6
    
    >>> from itertools import repeat
    >>> lots_of_fours = repeat(4, times=100_000_000)
    
    1

    Lưu ý rằng lớp

    >>> favorite_numbers = [6, 57, 4, 7, 68, 95]
    >>> iter(favorite_numbers)
    <list_iterator object at 0x7fe8e5623160>
    
    09 của chúng tôi ở đây tạo ra một thứ có thể được gọi là (không phải là một iterator). Điều đó có nghĩa là phương thức
    1
    2
    3
    
    8 của chúng tôi phải trả về một trình lặp. Cách dễ nhất để tạo ra một trình lặp là bằng cách tạo chức năng máy phát, vì vậy mà chỉ là những gì chúng tôi đã làm.

    Chúng tôi đã bị mắc kẹt >>> lots_of_fours = [4] * 100_000_000 >>> import sys >>> sys.getsizeof(lots_of_fours) 800000064 1 trong 1 2 3 8 của chúng tôi để biến nó thành một hàm máy phát và bây giờ lớp >>> favorite_numbers = [6, 57, 4, 7, 68, 95] >>> iter(favorite_numbers) <list_iterator object at 0x7fe8e5623160> 09 của chúng tôi có thể được lặp lại, giống như bất kỳ điều gì khác.

    >>> from itertools import repeat
    >>> lots_of_fours = repeat(4, times=100_000_000)
    
    3generators are the typical way to make an iterator in Python.

    Các chức năng của máy phát điện là một sự phù hợp tự nhiên để tạo các phương thức

    1
    2
    3
    
    8 trên các lớp học của bạn.

    Máy phát điện là cách để tạo ra các trình lặp lạihow to create your own iterator, think of generator functions and generator expressions.

    Từ điển là cách điển hình để tạo ánh xạ trong Python. Các chức năng là cách điển hình để tạo một đối tượng có thể gọi được trong Python. Tương tự như vậy, máy phát điện là cách điển hình để tạo ra một trình lặp trong Python.

    Vì vậy, khi bạn nghĩ rằng, nó chắc chắn sẽ rất tốt khi thực hiện một sự khác biệt khi tính toán mọi thứ khi nó lặp đi lặp lại, anh ấy nghĩ về các phép lặp.

    Và khi bạn đang xem xét cách tạo trình lặp của riêng bạn, hãy nghĩ về các hàm tạo và biểu thức máy phát.

    Một chức năng có thể lặp lại trong Python là gì?

    Có thể lặp lại là một đối tượng có thể được lặp qua hoặc lặp đi lặp lại với sự trợ giúp của một vòng lặp.Các đối tượng như danh sách, bộ dữ liệu, bộ, từ điển, chuỗi, vv được gọi là Iterables.Nói ngắn gọn và đơn giản hơn, có thể là bất cứ điều gì bạn có thể lặp lại.an object which can be looped over or iterated over with the help of a for loop. Objects like lists, tuples, sets, dictionaries, strings, etc. are called iterables. In short and simpler terms, iterable is anything that you can loop over.

    Điều gì có thể hiểu được với ví dụ trong Python?

    Một điều có thể là bất kỳ đối tượng Python nào có khả năng trả lại các thành viên của mình một lần, cho phép nó được lặp lại trong một vòng lặp.Các ví dụ quen thuộc về các vòng lặp bao gồm danh sách, bộ dữ liệu và chuỗi - bất kỳ chuỗi nào như vậy có thể được lặp lại trong một vòng lặp.any Python object capable of returning its members one at a time, permitting it to be iterated over in a for-loop. Familiar examples of iterables include lists, tuples, and strings - any such sequence can be iterated over in a for-loop.

    Điều gì là có thể sử dụng cho Loop Python?

    Một điều đó là bất cứ điều gì bạn có thể lặp lại với một vòng lặp trong Python.Iterables có thể được lặp qua, và bất cứ thứ gì có thể được lặp lại là một điều đáng tin cậy.Trình tự là một loại rất phổ biến của có thể lặp lại.Danh sách, bộ dữ liệu và chuỗi là tất cả các chuỗi.anything you can loop over with a for loop in Python. Iterables can be looped over, and anything that can be looped over is an iterable. Sequences are a very common type of iterable. Lists, tuples, and strings are all sequences.

    Python có phải là một điều không thể xảy ra không?

    Trong Python, Set là một tập hợp các loại dữ liệu không có thứ tự là có thể sử dụng được, có thể thay đổi và không có các yếu tố trùng lặp.Set is an unordered collection of data type that is iterable, mutable and has no duplicate elements.