@enot_style

Как работают генераторы списков?

Начал изучать генераторы в Питоне и возникло несколько вопросов:
1. (на вход значения: 1 2 3 4 5)
a = [int(i) for i in input().split()]
Как я понимаю у нас берется последовательность, в данном случае input().split записывается в переменную i и преобразуется в int(i). Мне в данном случае не понятно работа переменной i. Мы ее объявляем внутри генератора и обратиться к ней можем только после построения списка в виде a[i]?

2. (на вход значения: 1 2 3 4 5)
a = [int(i) for i in input()]
Почему в данном случае в список запишется [1, ' ', 2, ' '....]. Как генератор без split() записывает в список еще и пробелы, я предполагал, что при таком виде будет список из одного элемента i0 = 1 2 3 4 5.
Преподаватель не дал ответы на данные вопросы, т.к я решил поэкспериментировать и пошел не по заданиям курса, надеюсь вы разжуете эти глупые вопросы
  • Вопрос задан
  • 619 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
  1. Списковые включения - это пример декларативного подхода, поэтому неправильно пытаться их осмыслить с императивных позиций, но переменную i можно считать переменной цикла, принимающей на каждой итерации новое значение итератора. Обратиться к ней после построения списка нельзя.
  2. Потому что строка - это последовательность символов.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы