小白跟着大神学Python——Day05 dict字典
字典
字典是python中唯一的映射类型。
为什么会有字典这个数据类型:
1.列表如果存储大量的数据,查询速度相对慢一些。
2.列表存储的数据一般没有什么关联性。
针对以上因素,python提供了一个基础数据类型:dict字典。
{’name‘:’alex‘} 以(键 :值)对 的形式存储的数据类型。
数据类型的分类:
容器型数据类型:list,tuple,dict,set。
非容器型数据类型:str bool int。
可变(不可哈希)的数据类型:list dict set
不可变(可哈希)的数据类型:str,bool,int ,tuple
特点:
1.字典的键必须是不可变(可哈希hash)的数据类型。字典的键是唯一的,不重复的。
键的组成:一般是字符串和数字。字典的值可以是任意数据类型(对象)。
2.字典的查询速度非常快。
3.字典在3.5包括3.5之前是无序的,但是3.6优化机制,字典会按照创建字典之初的顺序排列。
4.字典可以存储大量的关联性数据。
基本用法:
增删改查
dic ={’name’ :‘barry’,‘age’:18,‘sex’,‘man’}
增 #2种
#有则覆盖,无则添加
dic[’weight‘] = 150
dic['age'] = 28
#setdefualt 有则不变,无则添加
dic.setdefault('high')
dic.setdefault('name','ritian')
删 #4种
#pop 通过键去删除键值对
dic.pop('name')
#有返回值,values
#clear 清空
#popitem 删除最后一个键值对。#3.5以前是随机删除的。
#del dic['name']
print(dic)
改 #2种
1.dic[‘age’] =28
2..update
dic1 = {"name":"jin","age":18,"sex":"male"}
dic2 = {"name":"alex","weight":75}
# 将dic所有的键值对覆盖添加(相同的覆盖,没有的添加)到dic2中
dic2.update(dic1)
print(dic2)
查 # 3种
#按照键 查对应的值
dic[‘name’]
dic[‘name1’] #没有此键会报错
ret = dic.get(‘age’)
ret = dic.get(‘age1’) #不报错 #none
ret = dic.get(‘age’,'没有返回值') #可以设定返回值
dic = {‘’:‘’,‘’:‘’,' ':' '}
直接循环字典获取的是key值。
dic.keys() dic.values() dic.items()
#上面三个都是返回一个类似于列表的容器的特殊类型。 ???返回的是什么类型
其他操作
# item = dic.items() # print(item,type(item)) # dict_items([('name', 'jin'), ('sex', 'male'), ('age', 18)]) <class 'dict_items'> # 这个类型就是dict_items类型,可迭代的 # keys = dic.keys() # print(keys,type(keys)) # dict_keys(['sex', 'age', 'name']) <class 'dict_keys'> # values = dic.values() # print(values,type(values)) # dict_values(['male', 18, 'jin']) <class 'dict_values'> 同上
浙公网安备 33010602011771号