我今天开始阅读关于underscore.js的文章,这是一个javascript库,它添加了一些我在Python中习惯使用的函数式编程工具。一个相当酷的速记方法是pluck。
实际上,在Python中,我经常需要提取一些特定的属性,并最终执行以下操作:
users = [{
"name" : "Bemmu",
"uid" : "297200003"
},
{
"name" : "Zuck",
"uid" : "4"
}]
uids = map(lambda x:x["uid"], users)
如果下划线速记在Python中的某个地方,则可能:
uids = pluck(users, "uid")
添加当然很简单,但在Python中已经有了吗?
只要在任何函数中使用列表理解即可
uids
:而不是
做
如果您只想
uids
进行迭代,则不需要创建列表——而是使用生成器。(用()
替换[]
。)例如:
从funcy模块(https://github.com/Suor/funcy)中,您可以选择提取函数。
在这种情况下,如果在主机上可以使用funcy,则以下代码应按预期工作:
注意参数的顺序不同于下划线.js使用的顺序
相关问题 更多 >
编程相关推荐