1 字典
1.1 python字典的概述
字典是一个无序的,可以修改的,元素呈键值对的形式,以逗号分割的,以大括号包围的序列;
字典是python基础数据类型当中唯一一个映射关系的数据类型;
由于字典无序,所以我们定义字典和字典生成之后的元素的顺序是不同的;
1.2 python字典的定义
1.定义字典、查看数据和类型
直接使用print输出
使用type函数查看字典类型
源码:
运行结果:
字典的key必须是不可变数据类型,value可以是任意数据类型
2.字典的增加操作
使用setfault方法
在字典中如果键存在了,就会覆盖键对应的值
运行结果
法2:
通过key值进行增加
运行结果
字典中的键值可以是数字也可以是字符,但不能是变量
3.删除操作
例:
pop方法 弹出指定键值对
popitem方法 随机删除一个键值对
运行结果
使用 clear 清除对象
例:
运行结果
4、修改操作
(1).通过key来修改内容 info[key]=value
例:
运行结果:
(2).update()方法
例:
运行结果:
5.查找字典
(1)、keys()
从中我们可以知道,对于keys()函数,字典返回的是一个类(我们可以把它简单看做是数据以及由存取、操作这些数据的方法所组成的一个集合),我们如果向调用其中的键值,必须使用list()函数。可以通过遍历取出其中的值,但不能像list那样调用。
如:
dic.keys( )[0] 会报错
但
for i in dic.keys():
print(i)
却可以成功打出所有的键值
(2)values()
同理values()返回的也是一个类
(3)get( ),取出字典的值
注:还有dict[key] 也可以,可以看出dict[key]比上述要简便
(4) update()
上面已经做过讲解
(5)items()
和values( )与keys( )类似,返回的也是一个类,是一个包含key和value的列表
)
1.3 字典的特点
因为字典是无序的,所以字典没有索引值;
因为字典没有索引值,所以字典以键取值,(字典的键相当于列表的索引);
因为字典以键取值,所以字典的键唯一且不可修改;
因为字典的键不可修改,所以列表和字典等可变类型的数据不可以给字典做键。
1.4 字典的常见操作
2、键值对互换
注:这个可以进互换的前提是键值对唯一。
法1:
法2:方法2 相当于方法1 的简便方式
方法3:利用zip()函数合并d.keys()和d.values()的对象
3、将字典按key值或者value值排序并返回字典
(1)利用lambda函数
1.1.lambda
功能: 创建匿名函数
区别: 和def函数定义,以下两点区别
案例:
在这里要用到两个函数sorted和lambda。
案例1:按字典的键值排序
注:字典本身在创建的时候就,就会对key值去重,并保留最后一个key值中的元素。
案例2:按字典中的值排序并生成新的字典
利用字典统计列表中的个数
#方法1
values=[1,2,3,2,3,1,4]
values_cnt={
}
for value in values:
value_cnt[value]=values_cnt.get(value,0)+1
#方法2
list1=[1,1,2,3,2,3]
dict1={
}
for i in list1:
if i not in dict1:
dict1[i]=1
else:
dict1[i]+=1