@Web__Nikita03

Почему python вместо числа думает, что это генератор?

Учу python, хотел выполнить задачу https://stepik.org/lesson/3369/step/10?unit=952 Написал вот этот код
l = []
while True :
  b = input()
  if b == 'end':
    break
  else:
    l.append(int(i) for i in b.split())
new_l = list(l)
for i in range(len(l)):
  for b in range(len(int(l[i]))):
    if i + 1 == len(l):
      if b + 1 == len(l[i]):
        summa = l[i - 1][b] + l[0][b] + l[i][b - 1] + l[i][0]
        new_l[i][b] = summa
      else:
        summa = l[i - 1][b] + l[0][b] + l[i][b - 1] + l[i][b + 1]
        new_l[i][b] = summa
    else:
      if b + 1 == len(l[i]):
        summa = l[i - 1][b] + l[i + 1][b] + l[i][b - 1] + l[i][0]
        new_l[i][b] = summa
      else:
        summa = l[i - 1][b] + l[i + 1][b] + l[i][b - 1] + l[i][b + 1]
        new_l[i][b] = summa
for i in new_l:
  for b in i:
    print(b, end='')
  print()

Но консоль выводит
Traceback (most recent call last):
File "jailed_code", line 10, in
for b in range(len(l[i])):
TypeError: object of type 'generator' has no len()
Почему он думает, что l[i] это генератор, ведь это обычный массив внутри массива l. Не так ли? И что это за тип такой интересный generator?
  • Вопрос задан
  • 197 просмотров
Решения вопроса 1
int(i) for i in b.split()
Этим вы создали генератор. Поместите это выражение в квадратные скобки
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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