Ответ 1
Используйте это:
[[number+1 for number in group] for group in x]
Или используйте это, если вы знаете карту:
[map(lambda x:x+1 ,group) for group in x]
У меня есть список списков и я хотел бы использовать понимание списка для применения функции к каждому элементу в списке списков, но когда я это делаю, у меня заканчивается один длинный список, а не мой список списков.
Итак, у меня
x = [[1,2,3],[4,5,6],[7,8,9]]
[number+1 for group in x for number in group]
[2, 3, 4, 5, 6, 7, 8, 9, 10]
Но я хочу получить
[[2, 3, 4], [5, 6, 7], [8, 9, 10]]
Как мне это сделать?
Используйте это:
[[number+1 for number in group] for group in x]
Или используйте это, если вы знаете карту:
[map(lambda x:x+1 ,group) for group in x]
вы можете использовать numpy, как показано ниже,
import numpy
x = [[1,2,3],[4,5,6],[7,8,9]]
xx = numpy.array(x)
print (xx + 1).tolist()
lista = [[i+3*(j-1) for i in range(1,4)] for j in range(1,4)]
print(lista)
# outputs [[1, 2, 3], [4, 5, 6], [7, 8, 9]]