小编典典

在python中使用map处理列表时获取项目索引

python

使用map()处理列表时,我想在lambda中访问该项目的索引。我怎样才能做到这一点?

例如

ranked_users = ['jon','bob','jane','alice','chris']
user_details = map(lambda x: {'name':x, 'rank':?}, ranked_users)

在上面的示例中,如何获取每个用户的排名?


阅读 219

收藏
2020-12-20

共1个答案

小编典典

使用枚举

In [3]: user_details = [{'name':x, 'rank':i} for i,x in enumerate(ranked_users)]

In [4]: user_details
Out[4]: 
[{'name': 'jon', 'rank': 0},
 {'name': 'bob', 'rank': 1},
 {'name': 'jane', 'rank': 2},
 {'name': 'alice', 'rank': 3},
 {'name': 'chris', 'rank': 4}]

PS。我的第一个答案是

user_details = map(lambda (i,x): {'name':x, 'rank':i}, enumerate(ranked_users))

我强烈建议使用列表理解或发电机表达过maplambda只要有可能。列表理解更具可读性,并且往往更快地启动。

2020-12-20