鱼C论坛

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

[技术交流] 《零基础入门学习python》第二十六讲笔记:字典:当索引不好用时2

[复制链接]
发表于 2017-7-31 12:59:54 | 显示全部楼层 |阅读模式

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

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

x
str() ,int(), list(), tuple().... 这些都是工厂函数,分别对应一个类型

字典的内建方法:fromkeys(...)  , keys() , values() , items()
fromkeys(...): dict.fromkeys(S[,v]) -> New dict with keys from S and values equal to v (v defaults to None)

  1. >>> dict1 = {}   # 创建一个空字典
  2. >>> dict1.fromkeys((1,2,3))   # fromkeys() 只给一个参数,那么默认第二个参数就是None
  3. {1: None, 2: None, 3: None}
  4. >>> dict1.fromkeys((1,2,3),'Number')    # 这里给第二个参数,就会给到前面的每一个键当作其值
  5. {1: 'Number', 2: 'Number', 3: 'Number'}
  6. >>> dict1.fromkeys((1,2,3),('one','two','three'))    # 这里会把'one','two','three'当一个整体, 当一个参数
  7. {1: ('one', 'two', 'three'), 2: ('one', 'two', 'three'), 3: ('one', 'two', 'three')}
  8. >>> dict1.fromkeys((1,3),'数字')   # 这里重新创建一个新字典
  9. {1: '数字', 3: '数字'}
复制代码


keys(): 返回字典键的引用,values():返回字典值的引用,items() 返回字典项的引用       dir(dict) 查看字典内建方法

  1. >>> dict1 = dict1.fromkeys(range(8),'赞')
  2. >>> dict1
  3. {0: '赞', 1: '赞', 2: '赞', 3: '赞', 4: '赞', 5: '赞', 6: '赞', 7: '赞'}

  4. >>> for eachKey in dict1.keys():   # 返回字典键
  5.     print(eachKey)


  6. 0
  7. 1
  8. 2
  9. 3
  10. 4
  11. 5
  12. 6
  13. 7
  14. >>> for eachValue in dict1.values():  # 返回字典值
  15.     print(eachValue)










  16. >>> for eachItem in dict1.items():  # 返回字典项
  17.     print(eachItem)


  18. (0, '赞')
  19. (1, '赞')
  20. (2, '赞')
  21. (3, '赞')
  22. (4, '赞')
  23. (5, '赞')
  24. (6, '赞')
  25. (7, '赞')

  26. >>> print(dict1[7])

  27. >>> print(dict1[8])   #  打印字典中不存在的键会报错
  28. Traceback (most recent call last):
  29.   File "<pyshell#65>", line 1, in <module>
  30.     print(dict1[8])
  31. KeyError: 8
复制代码
  1. >>> dict1.get(8)   
  2. >>> print(dict1.get(8))   # 用get打印字典中不存在的键,会返回None
  3. None
  4. >>> dict1.get(8,'木有!')   # get(),两个参数,如果没有第1个参数,就返回第二个参数
  5. '木有!'
  6. >>> dict1.get(7,'木有')  # get(),两个参数,如果第1个参数存在,就返回第1个参数对应的值
  7. '赞'
  8. >>> a
  9. {3: 'three', 4: 'four'}
  10. >>> a.setdefault('小白')  #  setdefault(),访问不存在的键会默认给None值
  11. >>> a
  12. {'小白': None, 3: 'three', 4: 'four'}
  13. >>> a.setdefault(5,'five')    # 新增一项
  14. 'five'
  15. >>> a
  16. {'小白': None, 3: 'three', 4: 'four', 5: 'five'}
  17. >>> b = {'小白':'狗'}
  18. >>> a.update(b)  # 更新a
  19. >>> a
  20. {'小白': '狗', 3: 'three', 4: 'four', 5: 'five'}
复制代码


  1. >>> 7 in dict1  # 成员操作符in ,用来判断键是否在字典中
  2. True
  3. >>> 8 in dict1
  4. False
复制代码
  1. >>> dict1
  2. {0: '赞', 1: '赞', 2: '赞', 3: '赞', 4: '赞', 5: '赞', 6: '赞', 7: '赞'}
  3. >>> dict1.clear()  # 清空字典
  4. >>> dict1
  5. {}
  6. 清空字典跟直接 dict1 = {} , 两个有区别。看下例
  7. >>> dict1 = {}
  8. >>> a = {'姓名':'小甲鱼'}
  9. >>> b = a
  10. >>> b
  11. {'姓名': '小甲鱼'}
  12. >>> a = {}
  13. >>> a
  14. {}
  15. >>> b
  16. {'姓名': '小甲鱼'}
  17. >>> a = b
  18. >>> a
  19. {'姓名': '小甲鱼'}
  20. >>> b
  21. {'姓名': '小甲鱼'}
  22. >>> a.clear()
  23. >>> a
  24. {}
  25. >>> b
  26. {}
复制代码

  1. >>> a = {1:'one',2:'two',3:'three'}
  2. >>> b = a.copy()   # a复制一份给b
  3. >>> c = a    # 给a变量的内容再加一个标签c
  4. >>> c
  5. {1: 'one', 2: 'two', 3: 'three'}
  6. >>> a
  7. {1: 'one', 2: 'two', 3: 'three'}
  8. >>> b
  9. {1: 'one', 2: 'two', 3: 'three'}
  10. >>> id(a)    # a和c id一致,跟copy的b不一致
  11. 192299304
  12. >>> id(b)
  13. 192293544
  14. >>> id(c)
  15. 192299304
  16. >>> c[4] = 'four'  # 给c 字典添加一项
  17. >>> c
  18. {1: 'one', 2: 'two', 3: 'three', 4: 'four'}
  19. >>> a
  20. {1: 'one', 2: 'two', 3: 'three', 4: 'four'}
  21. >>> b  # b 字典不会变
  22. {1: 'one', 2: 'two', 3: 'three'}
  23. >>> a.pop(2)  # 删除键为2的值
  24. 'two'
  25. >>> a  
  26. {1: 'one', 3: 'three', 4: 'four'}
  27. >>> a.popitem() # popitem() 随机删除一项,字典没有顺序
  28. (1, 'one')
  29. >>> a
  30. {3: 'three', 4: 'four'}
复制代码

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-26 05:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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