地图和字典的区别

新手上路,请多包涵

我可能会混淆 Java 中的 hashmap 和 Python 中的 map / dict

我认为Java的 hash (k/v抽象)与Python中的 dict 有点相同

但是 map 数据类型是做什么的呢?

是不是和hashmap抽象一样的抽象?如果是这样,那么它与字典有何不同?

我浏览了文档,但它让我把不同的范式整合在一起:函数式编程。

原文由 frazman 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 333
2 个回答

Map 不是 python 中的数据类型。它将函数应用于一系列值并返回结果。

 >>> def f(x):
...     return x**2
...
>>> list(map(f, range(5)))
[0, 1, 4, 9, 16]

通常对于像这样的“Pythonic”的简单案例,我们使用列表理解。

 >>> [x**2 for x in range(5)]
[0, 1, 4, 9, 16]

您对哈希图和字典的比较是正确的。

原文由 Nolen Royalty 发布,翻译遵循 CC BY-SA 4.0 许可协议

本质上,Java 中的 — Map dict :两种数据结构都在键和值之间创建关联,预期 O(1) 性能 get()contains() 操作。

不应将 Java 中的 Map 数据结构与 Python 中的 map() 函数混淆:

映射(函数,可迭代的,…)

将函数应用于可迭代的每个项目并返回结果列表。如果传递了额外的可迭代参数,则函数必须接受那么多参数,并并行应用于所有可迭代对象中的项目

原文由 Óscar López 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题