В Android, где файл сохраняется, вызывая java.io.File.createTempFile ()?

В первую очередь модуль itertools невероятно полезен для всех случаев, когда итератор был бы полезен, но вот все, что вам нужно для создания итератора в python:

yield

blockquote>

Разве это не круто? Выход можно использовать для замены нормального возврата в функции. Он возвращает объект одинаково, но вместо уничтожения состояния и выхода он сохраняет состояние, когда вы хотите выполнить следующую итерацию. Вот пример этого в действии, вытащенный непосредственно из списка функций itertools :

 def count(n=0):
     while True:
         yield n
         n += 1

Как указано в описании функций (это функция count () из модуля itertools ...), он создает итератор, который возвращает последовательные целые числа, начиная с n.

. Выражения генератора - это целая другая червь червей (удивительные черви!). Они могут использоваться вместо List Consrehension для сохранения памяти (для понимания списка создается список в памяти, который уничтожается после использования, если не назначен переменной, но выражения генератора могут создавать объект Generator. который является причудливым способом сказать Итератор). Ниже приведен пример определения выражения генератора:

gen = (n for n in xrange(0,11))

Это очень похоже на наше определение итератора выше, за исключением того, что полный диапазон задан в пределах от 0 до 10.

I только что нашел xrange () (удивил, что я не видел его раньше ...) и добавил его к приведенному выше примеру. xrange () - это итерируемая версия range (), которая имеет то преимущество, что не создала список. Было бы очень полезно, если бы у вас был гигантский массив данных для перебора и у него было столько памяти, чтобы сделать это.

-1
задан LPVOID 30 March 2019 в 22:09
поделиться