VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > python入门 >
  • python入门教程之python基础(8):基本数据类型三(dict)、is和==、编码和解码

本站最新发布   Python从入门到精通|Python基础教程
试听地址  
https://www.xin3721.com/eschool/pythonxin3721/


1. 字典

1.1 字典的介绍

字典(dict)是python中唯一的一个映射数据类型,它是以{}括起来的键值对组成。在dict中key是唯一的,在保存的时候,根据key来计算出一个内存地址,然后将key-value保存在这个地址中,这种算法被称为hash算法。所以,切记,在dict中存储的key-value中的key必须是可hash的。如果你搞不懂什么是可哈希,暂时可以这样记,可以改变的都是不可哈希的,那么可哈希就意味着不可变,这个是为了能准确的计算内存地址⽽规定的。

已知的可哈希(不可变)的数据类型: int,str,tuple,bool 不可哈希(可变)的数据类型: list,dict,set

语法 :

{key1: value1, key2: value2....}

注意: key必须是不可变(可哈希)的,value没有要求,可以保存任意类型的数据。


	
  1. # 合法
  2. dic = {123: 456, True: 999, "id": 1, "name": 'sylar', "age": 18, "stu": ['
  3. ', '美⼥'], (1, 2, 3): '麻花藤'}
  4. print(dic[123])
  5. print(dic[True])
  6. print(dic['id'])
  7. print(dic['stu'])
  8. print(dic[(1, 2, 3)])
  9. # 不合法
  10. # dic = {[1, 2, 3]: '周杰伦'} # list是可变的. 不能作为key
  11. # dic = {{1: 2}: "哈哈哈"} # dict是可变的. 不能作为key
  12. dic = {{1, 2, 3}: '呵呵呵'} # set是可变的, 不能作为key

dict保存的数据不是按照我们添加进去的顺序保存的,是按照hash表的顺序保存的,⽽hash表不是连续的,所以不能进⾏切片⼯作,它只能通过key来获取dict中的数据。

1.2 字典的增删改查和其他相关操作

1.2.1 增加


	
  1. dic = {}
  2. dic['name'] = '周润发' # 如果dict中没有出现这个key, 就会新增⼀个key-value的组合进dict
  3. dic['age'] = 18
  4. print(dic)
  5. # 如果dict中没有出现过这个key-value. 可以通过setdefault设置默认值
  6. dic.setdefault('李嘉诚') # 也可以往⾥⾯设置值.
  7. dic.setdefault("李嘉诚", "房地产") # 如果dict中已经存在了. 那么setdefault将不会
  8. 起作⽤
  9. print(dic)

1.2.2 删除


	
  1. ret = dic.pop("jay") #通过key删除,返回被删除的value
  2. print(ret) del dic["jay"]
  3. print(dic)
  4. # 随机删除.
  5. ret = dic.popitem() # 清空字典中的所有内容
  6. dic.clear()

1.2.3 修改


	
  1. dic = {"id": 123, "name": 'sylar', "age": 18}
  2. dic1 = {"id": 456, "name": "麻花藤", "ok": "wtf"}
  3. dic.update(dic1) # 把dic1中的内容更新到dic中. 如果key重名. 则修改替换. 如果不存在key, 则新增.
  4. print(dic)
  5. print(dic1)

1.2.4 查询

查询⼀般⽤key来查找具体的数据.


	
  1. print(dic['name'])
  2. # print(dic['sylar']) # 报错
  3. print(dic.get("ok"))
  4. print(dic.get("sylar")) # None
  5. print(dic.get("sylar", "⽜B")) # ⽜B

1.2.5 其他相关操作


	
  1. dic = {"id": 123, "name": 'sylar', "age": 18, "ok
相关教程