从实际需求出发,当我们想要保存学生的学号,姓名等基本信息的时候。例如:学号:123456789
姓名:张三。这组数据看起来像是两个列表,但是元素之间存在着一定的关联关系。为了保存具有映射关系的数据,Python提供了字典这样的一个数据结构。
字典也是一种常用的数据结构,它相当于保存了两组数据,其中一组数据是关键数据,也就是 key;另一组数据可以通过key来访问,也就是value。简单的来说,就是一组数据是我们定义的变量名字,另一组变量是这些变量名所对应的具体的值,类似于结构体。
如同变量名不能重复一样,字典中的key,也不可以重复。
也和变量名一旦申请创建后不能改变一样,字典中的key除了可以用整形,字符串等等基本类型外,也可以使用元组这种不可变类型。列表是可变类型,所以不能够作为字典的key
创建:
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)
方法
[‘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
利用dumps和loads进行字典与字符串的转化
json.dumps(dict1)
json.loads(dict1)
str(dict1)#转化字符串
eval(dict1)#将转化的字符串去引号
原文:https://www.cnblogs.com/taoyao-ccdr/p/14828570.html