Python:列表理解列表列表

Jea*_*Luc 27 python list python-2.7

我有一个列表列表,并希望使用列表推导将函数应用于列表列表中的每个元素,但是当我这样做时,我最终得到一个长列表而不是列表列表.

所以我有

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]
Run Code Online (Sandbox Code Playgroud)

但我想得到

[[2, 3, 4], [5, 6, 7], [8, 9, 10]]
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

Boo*_*ter 45

用这个:

[[number+1 for number in group] for group in x]
Run Code Online (Sandbox Code Playgroud)

如果您知道地图,请使用此选项:

[map(lambda x:x+1 ,group) for group in x]
Run Code Online (Sandbox Code Playgroud)

  • 我意识到OP正在使用python2,但是对于未来的用户看到使用python3,map会返回一个*map对象*,所以你必须做`[list(map(lambda x:x + 1,group)) in in x]`得到相同的结果. (3认同)