鱼C论坛

 找回密码
 立即注册
查看: 1776|回复: 0

[技术交流] 《零基础入门学习Python》026字典:当索引不好用时2

[复制链接]
发表于 2017-7-26 14:10:22 | 显示全部楼层 |阅读模式

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

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

x
《零基础入门学习Python》
——学习笔记

026字典:当索引不好用时2

一.        定义分析

1.        dict.fromkeys(k,v):创建或访问新的字典。k为键,v为值,如果值不存在则显示为None。注意,k与y的对应关系并不是元素一一对应的,而是把y的所有值贴在每个k的元素上
  1. #举例子
  2. >>>dict1 = (‘num1’,’num2’,’num3’)
  3. >>>dict.fromkeys(dict1,10)
  4. {'num2': '10', 'num3': '10', 'num1': '10'}
复制代码
2.        dict.items():将整个所有项以元祖的形式打印出来。把字典中所有的键与值的对应打印出来。
  1. #举例子
  2. >>> dict1 = dict.fromkeys(range(30),'福')
  3. >>> for eachitems in dict.items(dict1):
  4.         print(eachitems)

  5.        
  6. (0, '福')
  7. (1, '福')
  8. (2, '福')
  9. (3, '福')
  10. (4, '福')
  11. (5, '福')
  12. (6, '福')
  13. (7, '福')
  14. (8, '福')
  15. (9, '福')
  16. (10, '福')
  17. (11, '福')
  18. (12, '福')
  19. (13, '福')
  20. (14, '福')
  21. (15, '福')
  22. (16, '福')
  23. (17, '福')
  24. (18, '福')
  25. (19, '福')
  26. (20, '福')
  27. (21, '福')
  28. (22, '福')
  29. (23, '福')
  30. (24, '福')
  31. (25, '福')
  32. (26, '福')
  33. (27, '福')
  34. (28, '福')
  35. (29, '福')
复制代码
3.        dict.get():
dict[key]:当key不存在的时候,会抛出异常
dict.get(key, defaut_value=None),当key不存在的时候,不会抛出异常,而且会返回默认值,默认值是可以改变的。
  1. #举例子
  2. >>> dict1 = dict.fromkeys((1,2,3),'牛')
  3. >>> dict1
  4. {1: '牛', 2: '牛', 3: '牛'}
  5. >>> dict1.get(2,'是什么?')
  6. '牛'
  7. >>> dict1.get(4,'是什么?')
  8. '是什么?'
复制代码
4.        成员资格操作符在字典中的查询:如果不知道字典中是否存在某一键,可以通过in或not in进行查询。
  1. #举例子
  2. >>> dict1 = dict.fromkeys((1,2,3),'牛')
  3. >>> 2 in dict1
  4. True
  5. >>> 8 in dict1
  6. False
复制代码
5.        clear():清空一个字典
  1. #举例子1
  2. >>> dict1 = dict.fromkeys((1,2,3),'牛')
  3. >>> dict.clear(dict1)
  4. >>> dict1
  5. {}
复制代码
  1. #举例子2
  2. >>> a = {1}
  3. >>> b = a
  4. >>> a.clear()
  5. >>> a
  6. {}
  7. >>> b
  8. {}
复制代码
6.        dict.copy():浅拷贝。注:浅拷贝不等于赋值。
  1. #举例子
  2. >>> a = {1:'one',2:'two',3:'three'}
  3. >>> b = a.copy()
  4. >>> c = a
  5. >>> id(a)
  6. 55082632
  7. >>> id(b)
  8. 55826632
  9. >>> id(c)
  10. 55082632
复制代码
7.        dict.pop()和dict.popitem:
pop是给对应的键弹出对应的值,并且使整个该对应在字典中消失。
popitem则是随机弹出一个键与其对应的值
  1. #举例子
  2. >>> a = {1:'one',2:'two',3:'three'}
  3. >>> a.pop(1)
  4. 'one'
  5. >>> a
  6. {2: 'two', 3: 'three'}
  7. >>> a.popitem()
  8. (2, 'two')
  9. >>> a
  10. {3: 'three'}
复制代码
8.        dict.setdefault:在列表中增加一个键和值,如果没有值只有键则对应值为默认值。
  1. #举例子
  2. >>> a
  3. {1: 'one', 2: 'two', 3: 'three', '?': None, 9: None, '9': None}
  4. >>> a = {1: 'one', 2: 'two', 3: 'three'}
  5. >>> a.setdefault('4')
  6. >>> a
  7. {1: 'one', 2: 'two', 3: 'three', '4': None}
  8. >>> a.setdefault(5,'five')
  9. 'five'
  10. >>> a
  11. {1: 'one', 2: 'two', 3: 'three', 5: 'five', '4': None}
复制代码
9.        dict.update():更新字典中键所对应的值。
  1. #举例子
  2. >>> a = {1: 'one', 2: 'two', 3: None}
  3. >>> b = {3:'three'}
  4. >>> a.update(b)
  5. >>> a
  6. {1: 'one', 2: 'two', 3: 'three'}
复制代码
二. 杂谈

1.
  1. >>> dict1 = {1,2,3}
  2. >>> dict.fromkeys(dict1,'牛')
  3. {1: '牛', 2: '牛', 3: '牛'}
  4. >>> print(dict1,get(2,'是什么?'))
  5. Traceback (most recent call last):
  6.   File "<pyshell#20>", line 1, in <module>
  7.     print(dict1,get(2,'是什么?'))
  8. [color=Red]NameError: name 'get' is not defined
  9. [/color]
复制代码
为什么报错了呢?一定要记住,如果朋友们使用***.fromkeys()这个方法的话,如果在前面不将其赋值的话,那么dict1其实还是原来的{1,2,3},而不是将fromkeys后的字典保存,所以如果想保留下来一定要记得用一个键将其赋值。

2.我发现大部分的赋值错误问题都出现在没有很好理解一点,在python中其实赋值这个说法是不准确的,正确理解应该是在值上贴标签,值不会因为标签的变更而变更。

3.dict.setdefault()在使用时如果键为引号引起的数字,则在显示中没有引号,如果为字母或符号,则会有引号标注。如果括号内的键字典中已存在,则会显示出该键所对应的值。

二.        部分作业分析


三.        知识掌握程度

心得:进一步掌握了字典的使用方法。

难点:对每个字典方法中参数的理解

重点:避免使用字典中易错的用法。

评分

参与人数 1鱼币 +4 收起 理由
小甲鱼 + 4 支持楼主!

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 10:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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