鱼C论坛

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

关于dict()创建字典问题

[复制链接]
发表于 2015-4-27 08:39:59 | 显示全部楼层 |阅读模式

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

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

x
关于这种方式:
test = ditc(), 下面有几种写法:
test = dict('a', 1)
test = dict(('a', 1))
test = dict(('a', 1),)
test = dict(['a', 1])
我不明白, 为什么有些错误, 有些没有, 这种方式, 要怎么用?
dict(mapping) -> new dictionary initialized from a mapping object's (key, value) pairs

这里的说明, 不是说, 有一个(key, value)就行了吗, 一定要()元组吗?为什么我用列表[]也行?
如:
test = dict([['a', 1]])
不知我说的你们清楚不。
像上面的, 为什么要加两层, 加一层[]就不行了。。。
加一层: test = dict(['a', 1]), 这样也是键值对啊,加两层:test = dict(['a', 1], ['b', 2]), 这也是啊。(个人见解)
为什么为什么, 有点混乱了。。。。
难道路, 规定只能是一个结构(列表或元组), 而且每个元素是一个键值对?
也就是说, 参数只能是一个?这个参数的每一个元素要包含键值对?
很混乱了。。。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-4-27 19:27:29 | 显示全部楼层
KEY 和Value是有映射关系的,肯定要一一对应啊~而且我觉得字典赋值方法多多,会一两种就够了吧~呵呵,仅供参考~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2015-4-27 20:59:01 | 显示全部楼层
本帖最后由 lightninng 于 2015-4-28 21:22 编辑
  1. >>> test = dict('a', 1)
  2. Traceback (most recent call last):
  3.   File "<pyshell#17>", line 1, in <module>
  4.     test = dict('a', 1)
  5. TypeError: dict expected at most 1 arguments, got 2
  6. >>> test = dict((('a', 1),('b', 2, 3)))
  7. Traceback (most recent call last):
  8.   File "<pyshell#18>", line 1, in <module>
  9.     test = dict((('a', 1),('b', 2, 3)))
  10. ValueError: dictionary update sequence element #1 has length 3; 2 is required
  11. >>> test = dict((('a', 1)))
  12. Traceback (most recent call last):
  13.   File "<pyshell#19>", line 1, in <module>
  14.     test = dict((('a', 1)))
  15. ValueError: dictionary update sequence element #0 has length 1; 2 is required
  16. >>> test = dict((('a', 1),('b', 2)))
  17. >>> test
  18. {'b': 2, 'a': 1}
  19. >>> test = dict((['c', 1],['d', 2]))
  20. >>> test
  21. {'c': 1, 'd': 2}
  22. >>> test = dict([('e', 1),('f', 2)])
  23. >>> test
  24. {'f': 2, 'e': 1}
  25. >>> test = dict([['g', 1],['h', 2]])
  26. >>> test
  27. {'h': 2, 'g': 1}
复制代码

总结
通过dict类创建字典:
1、传入参数必须是一个(见第一个报错),
2、这个参数可以是列表,也可以是元组(见后面成功的例子),
3、作为参数的列表或元组中的元素必须是长度为2的列表或者元组(见第二个报错),
4、作为 参数的元组或者列表必须长度大于等于2,即你提供的键和值至少为两对(见第三个报错)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-15 19:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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