基本数据类型(dict)

一、字典的简单介绍

  字典(dict)是python中唯一的一个映射类型。它是以{ } 括起来的键值对组成。在dict中key是唯一的。在保存的时候,根据key来计算出一个内存地址。然后将key-value保存在这个地址中,这种算法被称为hash算法。所以切记,在dict中存储的key-value中的key必须是可hash的。

暂时认为可hash的不可改变。

  已知的可hash数据类型:int,str,tuple,bool

  不可hash的数据类型:list, dict,set

  语法:

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

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

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

二、字典的增删改查及其他相关操作

1.增加

1 dic={}
2 # dic[key]=value
3 dic[‘name‘] = "王力宏"
4
5 #如果dict中没有出现过某key-value,也可以通过setdefault增加
6 dic.setdefault("key")
7 dic.setdefault("周杰伦")  #当只有key时,value为None
8 dic.setdefault("周杰伦","昆凌")#当dict中存在相应键值,setdefault无作用

2.删除

 1 dic = {"id":3,"name":"林俊杰"}
 2 #ret = dic.pop("id")  #pop(key)会返还键对应的值
 3 #print(dic)
 4 #print(ret)
 5
 6 del dic["name"]
 7 print(dic)
 8
 9 #随机删除
10 ret = dic.popitem()
11
12 #清空字典
13 dic.clear()

3.修改

1 dic = {"id": 1, "name": "王健林","money": 999999}
2 dic1= {"id":3, "喜欢的人":"王力宏"}
3 dic.update(dic1)
4 print(dic)

4.查询

1 dic = {"SA":"隐身刺客","TA":"圣堂刺客","NA":"暗夜刺客"}
2 print(dic["SA"])
3 # print(dic["GA"])   #没有相应的key值,则报错
4 print(dic.get("GA"))  #==> None
5 print(dic.get("GA","炼金术士")) #  ==>炼金术士,给一个默认值,不是添加到dic里

5.其他相关操作

 1 dic = {"王力宏":"爱的就是你","孙燕姿":"同类","周杰伦":"晴天"}
 2 print(dic.keys()) #dict_keys([‘王力宏‘, ‘孙燕姿‘, ‘周杰伦‘])  不是列表,可当成list来用
 3 for key in dic.keys():
 4     print(key)
 5 print(dic.values())
 6 for value in dic.values():
 7     print(value)
 8 print(dic.items())   #dict_items([(‘王力宏‘, ‘爱的就是你‘), (‘孙燕姿‘, ‘同类‘), (‘周杰伦‘, ‘晴天‘)])
 9 for key,value in dic.items():
10     print(key, value)

涉及知识:解构

a, b = 1, 2
print(a, b)   # 1 2
e, f, g = [1, 2, 3]
print(e,f,g)  #  1 2 3

三、字典的嵌套

 1 dic1 = {
 2     "name": "汪峰",
 3     "age": 38,
 4     "wife": {
 5         "name": ‘章子怡‘,
 6         "age": 28    },
 7     "children": [‘第一个毛孩?子‘, ‘第二个毛孩?子‘],
 8     "desc": ‘峰哥不会告我吧. 没关系. 我想上头条的‘
 9 }
10
11 print(dic1.get("wife").get("name"))

原文地址:https://www.cnblogs.com/listash/p/9273806.html

时间: 2024-07-31 16:38:14

基本数据类型(dict)的相关文章

python学习第5??天—2018.6.04基本数据类型(dict)

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

腾讯课堂——基础数据类型(dict字典)

初识字典 标准类型 数字 字符串 列表 字典 元组 字典是Python语言中唯一的映射类型. 定义:{key1:value1,key2:value2}    1.键与值用冒号":"分开:    2.项与项用逗号","分开: 特性:  1.key-value结构    2.key必须可hash.且必须为不可变数据类型.必须唯一    3.可存放任意多个值.可修改.可以不唯一    4.无序 字典的创建 person = {"name": "

初识基础数据类型 dict,set

字典 ? 字典(dict)是python中唯一一个映射类型,在python中key是唯一的,在保存的时候,根据key计算出一个内存地址,然后将key-value保存在这个地址中,这种算法被称为hash算法.所以,在dict中存储的键值对中的key必须是可哈希的.(可以改变的都是不可哈希的,那么可哈希的就意味着不可变.)这是为了能准确地计算内存地址而规定的.还有,dict保存的数据不是按照我们添加进去的顺序保存的,是按照hash表的顺序保存的,而hash表不是连续的,所以不能进行切片工作,只能通过

05.Python基本数据类型(dict)

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

Python的高级特性11:拓展基本数据类型(dict)

字典的创建有两种方式,如果出现In [26]这样的赋值方式就会报错. In [17]: s['name'] = 'alex' In [18]: s['sex'] = 'male' In [19]: s Out[19]: {'name': 'alex', 'sex': 'male'} In [20]: s = {'name':'alex','sex':'male'} In [21]: s Out[21]: {'name': 'alex', 'sex': 'male'} In [22]: t = {

Python数据类型之四(字典)

字典: 格式:dict{}数据类型划分:可变数据类型 与 不可变数据类型 可变数据类型 称为:可哈希元组 bool int str 不可变数据类型 称为:不可哈希 如:list bict set dict key :必须是不可变数据类型 value : 任意数据类型 dict 的优点: 二分查找去查询 (速度快) 存储大量的关系型数据 3.5版本之前是无序的.3.6版本以后好像是有序的. 创建一个dict: dic = { 'name':['taibai ','alexC','AbC ','eg

容器数据类型及其内置方法

元组(Tuples) 作用:能够存储多组数据的容器类型,形式跟List差不多,只不过是小括号不是中括号,并且其中的数据不能被修改 内部原理:当定义了元祖时,内存开辟了新的区域来存放元祖中的数据元素,其中每个不同元素都占据着元祖中的内存空间及地址,如果该数据是不可变类型,一旦确定下来内存地址后,该数据就动弹不得,一生一世都居住在这个内存地址中.如果该数据是可变类型,由于修改其内容并不会变动内存地址,因此可变类型的数据在元组中是可以修改的. 图示    大原则就是不允许修改内存元组中每个数据的内存地

python基础之字典dict

不可变数据类型:tuple.bool.int.str --可哈希类型可变数据类型:list.dict.set --不可哈希类型dict-key 必须是不可变数据类型,可哈希dict-value 任意数据类型dict 优点:二分查找.存储大量的关系型数据 特点:无序的-没有索引,只能按照键值对查找增:dict[key] = value dict.setdefault(key) dict.setdefault(key ,value)删:dict.pop(key) dict.pop(key,retur

python-数据类型,元祖,列表,字典,文件操作篇

python----数据类型,元祖,列表,字典,文件操作篇1.布尔类型:Ture False 非0即真 非空即真 空(None a=''空字符串) 条件判断返回的都是True或者False2.字符串: 注:字符串的所有操作,不改变原字符串值 常用的操作方法 .count() .find() #回不存在的元素,返回-1 .join() .encode() .decode()#bytes类型才有的(bytes:二进制类型) .endswith('.txt')#字符串是否以xx结尾 startswit