Python-字典的一点记录 字典及基本操作
字典简述
从实际需求出发,当我们想要保存学生的学号,姓名等基本信息的时候。例如:学号:123456789
姓名:张三。这组数据看起来像是两个列表,但是元素之间存在着一定的关联关系。为了保存具有映射关系的数据,Python提供了字典这样的一个数据结构。
字典也是一种常用的数据结构,它相当于保存了两组数据,其中一组数据是关键数据,也就是 key;另一组数据可以通过key来访问,也就是value。简单的来说,就是一组数据是我们定义的变量名字,另一组变量是这些变量名所对应的具体的值,类似于结构体。
如同变量名不能重复一样,字典中的key,也不可以重复。
也和变量名一旦申请创建后不能改变一样,字典中的key除了可以用整形,字符串等等基本类型外,也可以使用元组这种不可变类型。列表是可变类型,所以不能够作为字典的key
字典操作
-
创建:
- 可以使用花括号来创建;
- 可以使用函数 dict() 。另外 dict是一种类型,即Python中的字典类型。
dict1={"id":123456789,"name":张三} #创建 元组作为 key value value=[("key1",1),("key2",2),("key3",3)] #创建 列表双元素作为 key value value=[["key1",1],["key2",2],["key3",3]] dict1=dict(value) #创建空的字典 dict2=dict() #直接指定对应关系创建字典 dict3=dict(k1=101,k2=303,k3=404) #注:此时key不允许使用表达式 此时key不需要使用引号引起来。
-
访问
对于字典来说,所有的操作都是基于key进行。例如访问value、添加数值对、删除数值对、修改数值对、判定数值对等等
#访问value print(dict3['k1']) #添加 dict3['k4']=1 #删除 del dict3['k1'] #修改 dict3['k2']=89 #判定存在 print("k1" in dict3) print("k2" not in dict3) print('k3' in dict3) #变量访问 val=k1 dict3[val]
-
添加
-
方法
['clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
clear() 清空数值对,执行后原字典变为空字典
get() 通过key获取value,当访问不存在的key时,返回NONE。
update() 更新数值对,将原有的value覆盖。若key不存在,则会新增一个数值对。
items() 获取字典中所有的数值对,返回dict_items对象
keys() 获取字典中所有的key,返回dict_keys对象
values() 获取字典中所有的value,返回dict_values对象
最好不要直接操作这三个对象,我们可以通过list()函数转换成列表进行操作pop() 获取指定数值对,并且删除。
popitem() 获取底层存储的最后一个数值对
setdefault() 根据key获取value,当key不存在时赋予初始值
dict1.clear() dict1.get("key1") dict1.update("key1":2323) idems_dict1=dict1.items() list(idems_dict1)[1] #keys() values() 类似 dict1.pop("key1") dict1.setdefault("key9")
-
函数
cmp(dict1,dict2) 比较
len(dict) 计算元素个数
str() 输出字典可打印的字符串表
type(dict) 数据类型
-
文件读取txt
- json
利用dumps和loads进行字典与字符串的转化
json.dumps(dict1) json.loads(dict1)
- str
str(dict1)#转化字符串 eval(dict1)#将转化的字符串去引号