gpt4 book ai didi

字典投影、过滤器或子集的 Python 列表?

转载 作者:太空狗 更新时间:2023-10-30 01:42:53 25 4
gpt4 key购买 nike

我正在尝试创建我认为是从较大字典空间到较小维度空间的“投影”。所以,如果我有:

mine = [
{"name": "Al", "age": 10},
{"name": "Bert", "age": 15},
{"name": "Charles", "age": 17}
]

我试图找到一个只返回的函数表达式:

[
{"name": "Al"},
{"name": "Bert"},
{"name": "Charles"}
]

我试过...

>>> filter(lambda x: x['name'],mine)
[{'age': 10, 'name': 'Al'}, {'age': 15, 'name': 'Bert'}, {'age': 17, 'name': 'Charles'}]
>>> map(lambda x : x['name'],mine)
['Al', 'Bert', 'Charles']

但似乎仍然缺少正确的功能。我知道如何通过列表理解来做到这一点,但我想学习如何在功能上做到这一点。

最佳答案

听起来像是列表理解的工作,不管你喜不喜欢。

>>> [{"name": d["name"]} for d in mine]
[{'name': 'Al'}, {'name': 'Bert'}, {'name': 'Charles'}]

没有列表理解的解决方案需要额外的函数定义:

def project(key, d):
return {k: d[k]}

map(partial(project, "name"), mine)

或者 lambda(恶心):

map(lambda d: {"name": d["name"]}, mine)

关于字典投影、过滤器或子集的 Python 列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17659580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com