鱼C论坛

 找回密码
 立即注册
查看: 4530|回复: 2

[已解决]关于字典函数dict()的问题

[复制链接]
发表于 2017-12-1 14:28:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
代码1:
  1. >>> dict3 = dict((('F',70),('i',105),('s',115),('h',105),('C',67)))
  2. >>> dict3
  3. {'C': 67, 's': 115, 'h': 105, 'F': 70, 'i': 105}
复制代码

和代码2:
  1. >>> dict4 = dict(小甲鱼='让编程改变世界')
  2. >>> dict4
  3. {'小甲鱼': '让编程改变世界'}
复制代码

代码1看不懂,为什么要那么多括号?dict()函数是怎么知道我要把'F'和70作为键值组合的?
可以说一下dict()的实现原理么?
最佳答案
2017-12-1 15:09:13
你将括号一层一层展开就知道了
dict3 = dict((('F',70),('i',105),('s',115),('h',105),('C',67)))
相当于
dict3 =  dict(tuple2)
tuple2 = (tuple20, tuple21, tuple22, tuple23, tuple24)
然后把每一个tuple2x赋值为对应的组
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-12-1 15:09:13 | 显示全部楼层    本楼为最佳答案   
你将括号一层一层展开就知道了
dict3 = dict((('F',70),('i',105),('s',115),('h',105),('C',67)))
相当于
dict3 =  dict(tuple2)
tuple2 = (tuple20, tuple21, tuple22, tuple23, tuple24)
然后把每一个tuple2x赋值为对应的组
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-1 15:35:34 | 显示全部楼层
本帖最后由 铁棍阿童木 于 2017-12-1 15:36 编辑

这个问题在小甲鱼视频的配套教材《零基础入门学习python》中解释过这个问题,原文如下:
dict()函数的参数可以是一个序列(但不能是多个),所以要打包称一个元组序列(列表也可以)。

所以,第一层括号是dict()函数自己的;第二层括号是一个元组;第三层括号是元组的元素自身;

一般来说用这种方法建立字典很麻烦,简洁的具有python风格的方法是通过提供映射关系的参数来创建字典:
>>> dict1 = dict(F = 70, i = 105, s = 115, h = 104, C = 67)
>>> dict1
{'C':67, 's':115, 'F':70, 'h':104, 'i':105}

要特别注意的是,用映射关系来创建字典,键的位置是不能加字符串的引号的,否则会报错。

>>> dict1 = dict(‘F’ = 70, ‘i’ = 105, ‘s’ = 115, ‘h’ = 104, ‘C’ = 67)
这样就会报错。一定记住!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-19 09:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表