在Python中用列表推导处理嵌套列表?
我有以下代码,用来在Python中处理一个嵌套列表,生成一个结构相同的列表。
>>> nested_list = [['Hello', 'World'], ['Goodbye', 'World']]
>>> [map(str.upper, x) for x in nested_list]
[['HELLO', 'WORLD'], ['GOODBYE', 'WORLD']]
这样可以仅用列表推导式来完成吗(不使用map函数)?
5 个回答
4
使用Map确实是一种更简洁的方法来实现你想要的功能。不过,你也可以把列表推导式嵌套起来,也许这正是你想要的做法?
[[ix.upper() for ix in x] for x in nested_list]
6
记住Python的哲学:
通常来说,做一件事的方法不止一种,而且可能有好几种很明显的做法。
** 注:已编辑以确保准确性。
总之,我更喜欢用map。
from functools import partial
nested_list = map( partial(map, str.upper), nested_list )
16
对于嵌套列表,你可以使用嵌套的列表推导式:
nested_list = [[s.upper() for s in xs] for xs in nested_list]
我个人觉得在这种情况下使用map
会更简洁,尽管我通常更喜欢列表推导式。所以这完全取决于你,反正两种方法都能实现。