我知道map是一种将键映射到值的数据结构。字典不也是这样吗?地图和字典的区别是什么?


1. 我不是问它们在语言X或Y中是如何定义的(这似乎是人们在这里问的),我想知道它们在理论上有什么不同。


当前回答

一个是另一个的旧说法。通常,“字典”一词是在数学术语“地图”占主导地位之前使用的。此外,字典倾向于有键类型的字符串,但这并不是100%正确的。

其他回答

我现在在一个数据结构类中,我的理解是dict()数据类型也可以初始化为dictionary ={}或键和值,基本上与列表/数组数据类型用于实现堆栈和队列相同。因此,dict()是类型,映射是一个结果数据结构,您可以选择用字典数据类型实现,就像您可以使用列表类型并选择用它实现堆栈或队列数据结构一样。

这个概念的其他术语相当常见:关联数组和哈希。

一个是另一个的旧说法。通常,“字典”一词是在数学术语“地图”占主导地位之前使用的。此外,字典倾向于有键类型的字符串,但这并不是100%正确的。

同一事物的两个术语:

“Map”被Java、c++使用 "Dictionary"被。net, Python使用 “关联数组”是PHP使用的

“Map”是正确的数学术语,但我们避免使用它,因为它在函数式编程中有单独的含义。

有些语言还使用其他术语(Javascript中的“对象”,Ruby中的“散列”,Lua中的“表”),但这些在编程中也都有不同的含义,所以我会避免使用它们。

更多信息请看这里。

是的,它们是一样的,你可以添加“关联数组”到混合。

使用哈希表或哈希表是指实现。