gpt4 book ai didi

Python map() 字典值

转载 作者:太空狗 更新时间:2023-10-29 22:09:52 25 4
gpt4 key购买 nike

我正在尝试对字典上的 values() 函数返回的 dict_values 对象使用 map()。但是,我似乎无法通过 dict_values 进行 map():

map(print, h.values())
Out[31]: <builtins.map at 0x1ce1290>

我相信有一种简单的方法可以做到这一点。我实际上想做的是在 Counters 字典中创建所有 Counter 键的 set(),做这样的事情:

# counters is a dict with Counters as values
whole_set = set()
map(lambda x: whole_set.update(set(x)), counters.values())

在 Python 中有更好的方法吗?

最佳答案

在 Python 3 中,map 返回一个迭代器,而不是一个列表。您仍然需要对其进行迭代,方法是显式调用 list 或将其放入 for 循环中。但是你不应该以这种方式使用 mapmap 实际上用于将返回值收集到可迭代对象或序列中。由于 printset.update 都不返回值,因此在这种情况下使用 map 不是惯用的。

您的目标是将 counters 中所有计数器中的所有键放入一个集合中。一种方法是使用嵌套生成器表达式:

s = set(key for counter in counters.values() for key in counter)

还有可爱的字典理解语法,它在 Python 2.7 及更高版本中可用(感谢 Lattyware!)并且可以生成集合和字典:

s = {key for counter in counters.values() for key in counter}

这些都大致等同于以下内容:

s = set()
for counter in counters.values():
for key in counter:
s.add(key)

关于Python map() 字典值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10692482/

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