字典的定义
dictionary
(字典) 是 除列表以外Python
之中 最灵活 的数据类型(有点类似java中的Map),是使用散列表实现的数据结构,键是可哈希。- 字典同样可以用来 存储多个数据
- 通常用于存储 描述一个
物体
的相关信息
- 通常用于存储 描述一个
- 和列表的区别
- 列表 是 有序 的对象集合
- 字典 是 无序 的对象集合
- 字典用
{}
定义 - 字典使用 键值对 存储数据,键值对之间使用
,
分隔- 键
key
是索引 - 值
value
是数据 - 键 和 值 之间使用
:
分隔 - 键必须是唯一的
- 值 可以取任何数据类型,但 键 只能使用 字符串、数字或 元组
- 键
lierge = {"name": "lian",
"age": 20,
"height": 1.75}
创建字典的多种方式
- 通过关键字dict与关键字参数
dict(name="lian",age=20)
2.通过二元组列表创建
d=[('name','lian'),('age',20)]
dic=dict(d)
3.通过zip与dict结合创建
z=zip("abc",[1,2,3])
dict(z)
4.通过字典推导式创建
dic={i:chr(i*2) for i in range(5)}
5.通过dict.fromkeys()创建 通常用来初始化字典, 设置value的默认值
dic=dict.fromkeys("abc",'x')
6.其它
lis=['x',1,'y',2,'z',3]
dic=dict(zip(lis[::2],lis[1::2]))
字典常用操作
- clear()清除所有数据,返回None
- get(k, d)获取某个键值,如果不存在,返回默认值d,否则抛出异常
- keys()返回一个含有所有键的集合
- values()返回含有所有键值的集合
- items()返回还有所有键值队的集合
- copy()拷贝
- fromkeys(*args,**kwargs)用来初始化字典, 设置value的默认值
- setdefault(k, d)添加键值对,若k存在,不添加,否则添加
- pop(k, d)移除键k,返回键值,不存在k返回默认值d,若无设置默认值,抛出异常
- popitem()随机移除某对键值对,返回键值对。若字典为空,抛出异常
- update()合并字典
dic = dict(zip("abc",[i for i in range(3)]))
dic['d'] = 4 #添加键值对
dic.setdefault('f',5) #添加键值对
dic.pop('a') #移除
dic.popitem() #移除
dic.fromkeys('def',x) # 返回新的字典,但是dic本身内容不变
dic.keys()#获取所有键
dic.items()#获取所有键值对
dic.values()#获取所有键值
dic.clear()#清空字典
字典排序几种方法
#对字典的键值进行排序
test = {"a":1,"d":-1,"b":3,"c":2}
sorted(test) #这种写法只会对键进行排序
#正确写法
方法一:
sorted(test.items(),lambda x:x[1],reverse=True)
方法二:
import operator
sorted(test.items(),key = operator.itemgetter(1))
方法三:
sorted(zip(test.values(),test.keys()))
优化字典查找:https://blog.csdn.net/yufeng0528/article/details/83977075
Python内存优化:https://www.cnblogs.com/xybaby/p/7488216.html#_label_4