Как разделить список в Python 3
Не могу понять как разделить список на списки. Код:
a = [[-3, 0, -6, -6, -3], [8, 2, -2, -1, -8], [-9, 9, 6, -4, -4], [4, -4, 5, -3, -8], \
[4, -1, 2, -6, -3], [9, -4, 8, -9, 0]]
print('Матрица:')
for i in a:
print(*i)
for i in a:
for m in i:
if m > 0:
m *= 2
x.append(m)
else:
x.append(m)
Выходит:
x = [-3, 0, -6, -6, -3, 16, 4, -2, -1, -8, -9, 18, 12, -4, -4, 8, -4, 10, -3, -8, 8, -1, 4, -6, -3, 18, -4, 16, -9, 0]
Должно быть:
x = [[-3, 0, -6, -6, -3], [16, 4, -2, -1, -8], [-9, 18, 12, -4, -4], [8, -4, 10, -3, -8], [8, -1, 4, -6, -3], [18, -4, 16, -9, 0]]
P.S. По программе def мы еще не знаем
Ответы (1 шт):
Автор решения: Danis
→ Ссылка
последний два цикла замените на:
for i in a:
x.append([])
for m in i:
if m > 0:
m *= 2
x[-1].append(m)
else:
x[-1].append(m)
И место
if m > 0:
m *= 2
x[-1].append(m)
else:
x[-1].append(m)
лучше писать
if m > 0:
m *= 2
x[-1].append(m)
Это можно легко решить с помощью list comprehension
x = [[m * 2 if m > 0 else m
for m in i]
for i in a]