gpt4 book ai didi

python - 提取列表中嵌入的字典项

转载 作者:太空宇宙 更新时间:2023-11-03 12:30:52 24 4
gpt4 key购买 nike

假设我有以下字典列表

t = [{'a': 1.0, 'b': 2.0},
{'a': 3.0, 'b': 4.0},
{'a': 5.0, 'b': 6.0},
{'a': 7.0, 'b': 9.0},
{'a': 9.0, 'b': 0.0}]

是否有一种有效的方法来提取字典中包含a 键值的所有值?

到目前为止,我想出了以下解决方案

x = []
for j in t:
x.append(j['a'])

但是,我不喜欢遍历项目,并且正在寻找一种更好的方法来实现这一目标。

最佳答案

您可以使用列表理解:

t = [{'a': 1.0, 'b': 2.0},
{'a': 3.0, 'b': 4.0},
{'a': 5.0, 'b': 6.0},
{'a': 7.0, 'b': 9.0},
{'a': 9.0, 'b': 0.0}]
new_list = [i["a"] for i in t]

输出:

[1.0, 3.0, 5.0, 7.0, 9.0]

由于此解决方案使用 for 循环,因此您可以改用 map:

x = list(map(lambda x: x["a"], t))

输出:

[1.0, 3.0, 5.0, 7.0, 9.0]

在性能方面,您更喜欢使用列表理解解决方案而不是 map 解决方案。

>>> timeit('new_list = [i["a"] for i in t]', setup='from __main__ import t', number=10000000)
4.318223718035199

>>> timeit('x = list(map(lambda x: x["a"], t))', setup='from __main__ import t', number=10000000)
16.243124993163093


def temp(p):
return p['a']

>>> timeit('x = list(map(temp, t))', setup='from __main__ import t, temp', number=10000000)
16.048683850689343

使用 lambda 或常规函数时略有不同;然而,推导式执行需要 1/4 的时间。

关于python - 提取列表中嵌入的字典项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46448278/

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