Программа не выполняется после m + = z. Почему это происходит? - PullRequest
0 голосов
/ 21 февраля 2020

Рассмотрим код ниже:

a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
k = len(a)
i = 0
m = []
while i < k:
      if a[i] < 5:
          z = a[i]
          m += z
          i += 1
      else:
          break

print(m)

Когда я пытаюсь его выполнить, я получаю:

m + = z

TypeError: ' int 'объект не повторяется

Почему это так?

1 Ответ

3 голосов
/ 21 февраля 2020

m является list; оператор += ожидает, что другой итератор будет добавлять элементы по одному за раз (поэтому += [1, 2, 3] добавляет три элемента, а не один list, к list), а не один элемент для добавления.

x - это int, так что это не работает. Вы, вероятно, захотите:

m.append(x)

Это также будет работать:

m += [x]

, но использование append более понятно (и последнее, что я проверял, немного быстрее).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...