【发布时间】:2019-05-03 19:06:48
【问题描述】:
假设我有以下数据结构
theValues = [
{ "id": "123", "name": "foo" },
{ "id": "321", "name": "bar" },
{ "id": "231", "name": "baz" }
]
获取 ID [123,321,231] 列表的最佳 Pythonistic 方式是什么?
如果这是 javascript,我可能会使用匿名函数对列表中的每个元素使用过滤器,但我似乎找不到 Python 等效项。我知道我可以做到以下几点:
myList = []
for v in theValues: myList.append(v["id"])
最终,我想将字典列表缩减为一个逗号分隔的列表,我想我可以通过连接来实现...尽管这种语法对我来说仍然很奇怪。有没有更好的办法?
myListIds = ",".join( myList )
这是最常见的做法吗?在 PHP 中,我可以这样做:
$myListIds = implode(",", array_map( values, function( v ) { return v["ID"]; } ));
【问题讨论】:
-
[d["id"] for d in values]怎么样?此外,变量名称values隐藏了 dict 方法的名称。 -
@YakymPirozhenko 谢谢...为清楚起见,我将更改该变量名称。这是样本数据,所以我没想到。
标签: python arrays python-3.x dictionary array-map