<MyRusakov.ru />

Финансовая грамотность от А до Я

Финансовая грамотность от А до Я

Данный курс в кратчайшие сроки обучит Вас финансовой грамотности. Эти знания позволят Вам получить, как минимум, серьёзную финансовую стабильность, а, как максимум, финансовую независимость.

В рамках курса даётся большое количество практических заданий, благодаря которым Вы не просто посмотрите курс, а действительно выполните ряд важнейших шагов, о которых в нём говорится.

Помимо самого курса Вас ждёт ещё бесплатный ценный Бонус: «Ранний выход на пенсию». В рамках этого Бонуса Вы узнаете, какой должен быть капитал конкретно в Вашем случае, варианты его получения, а также какие есть стратегии вывода капитала на пенсии и где их можно протестировать.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Выражение генератор в Python

Выражение генератор в Python

Выражение генератор чем-то похоже на генератор списков. Используется оно при работе с достаточно большими данными, например список сайтов, номера телефонов с сайта, почтовые адреса и другие данные. Данная конструкция по своему синтаксису сходна с генератором списков, с той лишь разницей, что код заключен в круглые скобки. При этом генератор списка создает список полностью и выгружает все элементы в память, выражение генератор же выгружает элементы списка по мере обращения к ним.

a = [i**3 for i in range(1,10)] # генератор списка
print(a)

#вывод
[1, 8, 27, 64, 125, 216, 343, 512, 729]


b = (i**3 for i in range(1,10))  # выражение генератор 
print(b)

#вывод
<generator object <genexpr> at 0x006393F0> # переменная b является генератором с адресом 0x006393F0

Основной особенностью генератора является то, что элементы в нем можно обойти не более одного раза, при этом инструментом доступа к коллекции внутри генератора является функция next(), которая извлекает за один раз каждый следующий объект в коллекции и запоминает текущую позицию итерации. Другими словами генератор - это объект реализованный на основе итератора с функцией next(). Сам объект итератор является отдельным в Python.


b = (i**3 for i in range(1,10))
print(next(b))

# вывод 
1

print(next(b))

# вывод 
8

При этом итерация выходящая за пределы коллекции вызывает ошибку StopIteration. Давайте посмотрим поближе на перебор элементов генератора, проитерируем его:

b = (i**3 for i in range(1,10)) # создадим генератор еще раз

for  x in b: # итерация  по каждому элементу
  print(x)

# вывод

1
8
27
64
125
216
343
512
729


# попробуем проитерировать снова

for  x in b: 
  print(x)

# результата не будет, о чем говорилось выше

Таким образом любая операция связанная с итерацией, т.е. обходом каждого элемента применительно к генератору, может быть выполнена только один раз. Например операция нахождения суммы b или преобразования в список выполнится лишь один раз. Данная особенность генераторов связана с тем что переменная b не хранит в себе весь список из переданного нами диапазона значений, а формирует их на лету при каждом последующем обращении, что несомненно удобно при работе с большими данными, так как не засоряет память большими данными.


b = (i**3 for i in range(1,10)) # создадим генератор еще раз

print(sum(b)) # нахождение суммы сопровождается итерацией по элементам 

# вывод
2025

print(sum(b))

# вывод 




Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.