关于字典和映射类型

silentwins 2016-03-25 10:01:08
Python核心编程写到:

“字典是Python语言中的唯一的映射类型。映射类型对象里哈希值(键,key)和指向的对象(值,value)是一对多关系。”

英语原文:
"Dictionaries are the sole mapping type in Python. Mapping objects have a one-to-
many correspondence between hashable values (keys) and the objects they
represent (values)."

按我的理解,key是不可重复的(重复的时候会覆盖原先的值),看起来key和value是一对一的关系,为什么这里说的是一对多关系呢?难道它的意思是映射类型对象是一对多,字典是特殊的一对一映射类型?谢谢!

dict1 = {'name':'a', 'name':'b'}
dict1
{'name': 'b'}
dict1['name']
'b'




...全文
364 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2017-01-22
  • 打赏
  • 举报
回复
楼主 这样 我给你一个案列, 给你 ,字典的一对多关系,这样你好理解些 请看下面:

#coding:utf-8
d = {'a':['1','2','3'],'name':'knight'}
print (d['a'])
print (d['name'])
xSeeker~ 2016-03-25
  • 打赏
  • 举报
回复
楼上说的是对的,但我还想补充一下我的理解(主要从字典的实际应用出发) 用这个例子解释one-to-many: #用字典描述人的属性 des_person = {'sex':('female','male') } #sex的值可以是female也可以是male
「已注销」 2016-03-25
  • 打赏
  • 举报
回复
一对多的意思是key必须唯一 ,值可以多个
羽飞 2016-03-25
  • 打赏
  • 举报
回复
我以为是多对一,世界观颠覆了
  • 打赏
  • 举报
回复
one-to-many 一对多关联映射 应该是指one对象里面有many对象的集合(List、Set等)
silentwins 2016-03-25
  • 打赏
  • 举报
回复
引用 1 楼 zl624867243 的回复:
一对多的意思是key必须唯一 ,值可以多个
谢谢! 但是你的解释太牵强了,明明还是一对一的关系,没人会这么表述的。 函数也是一对一的关系,对于每一个X都有唯一的Y,一个X值不可以有两个Y值,但是没要求Y的值不可以重复。

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧