@Herodotus

Добавление в массив новое число не добавляет число, а добавляет. Что делать?

В массив добваляется такое выражение63781a18f0206832893822.png
. Вот код, который за это ответсвенен
#
    new_matrix = []
    for i in range(2):
        for k in range(len(solved_matrix)):
            new_matrix.append(solved_matrix[k][i])
    calculated_matrix = []
    for i in range(len(new_matrix)):
        calculated_matrix.append(sum(new_matrix[i]) for k in range(matrix_1_height))
    print(calculated_matrix)
  • Вопрос задан
  • 74 просмотра
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
Нужно не путать просто генераторы и генераторы списков.
a = (sum(new_matrix[i]) for k in range(matrix_1_height))

Это - выражение-генератор. Оно принципиально "ленивое" - вычисляет свои значения только по запросу, и делает это только один раз. Т.е. ты можешь прогнать цикл for i in a, и значения будут сгенерированы и получены - но если попробуешь тут же прогнать цикл ещё раз на том же выражении, то не получишь ничего.

b = [sum(new_matrix[i]) for k in range(matrix_1_height)]

Это - генератор списка. Он вычисляет значения немедленно, все, и возвращает обычный список, который можно итерировать сколько угодно раз.
По сути, выражение можно записать и так:
a = (sum(new_matrix[i]) for k in range(matrix_1_height))
b = list(a)  # прогоняем генератор и превращаем его в список
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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