python之路10--之字典的所有操作
一、python字典的说明
字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。
字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
二、python字典的所有操作
1、定义字典
dic1 = {'age': 22, 'name': 'ouyang', 'sex': 'male'}
2、字典的增加操作
dic1['high'] = 180 #如果原字典里没有对应的键值则增加要增加的键值 dic1["age"] = 20 #如果原字典里有要新增的键值则修改(覆盖)键对应的值 dic1.setdefault("weight") #使用setdefault给字典增加元素时,如果不指定值则值默认为none dic1.setdefault("weight",70) #使用setdefault给字典增加元素时,指定了key和value添加 dic1.setdefault("name","ouyang") #使用setdefault给字典增加元素时,如果原字典里没有要添加的键值则可以增加键值,如果原字典里有要新增加的键值则什么也不做
3、字典的删除操作
dic1.pop("age") #按照键来删除,直接删除,有返回值(删除的值为返回值) dic1.pop("71","没有此键") #如果要删除的键不在字典里会报错,可以用这种方式指定返回值防止报错("71","没有此键") :71为要删除的键,但是71这个键不在字典dic1里,"没有此键":为指定的返回值,也可以用none或者其他自定义的。 print(dic1.popitem()) #随机删除且有返回值,返回值为删除了的元组格式的键和值 dic1.clear() #清空字典 del dic1["name"] #根据键来删除,但是如果指定的键为字典里没有的键则会报错,建议使用pop,少用这个 del dic1 #删除字典,删除字典后我们再打印字典会报错
4、字典的改操作
dic1["age"] = 15 #将字典里原有的值做修改,如果字典里没有该键则增加该键值 dic = {"name":"ouyang","age":18,"sex":"male"} dic2 = {"name":"qiyi","weight":75} dic2.update(dic) # 将dic所有的键值对覆盖添加(相同的覆盖,没有的添加)到dic2中 print(dic2) print(dic)
5、字典的查操作
print(dic1.keys()) #列表格式输出字典里的所有键 print(dic1.values()) #列表格式输出字典里的所有值 print(dic1.items()) #列表里面套元组的形式输出键值 print(dic1["name"]) #根据键找值,如果指定的键不在字典里则会报错 print(dic1.get("name1","没有这个键")) #根据键找值,如果指定的值不在字典里默认会返回none,也可以指定返回值,不会报错
for i in dic1: print(i) #循环,默认只输出键
for i in dic1.values(): #循环时指定values时,则只输出值 print(i)
for i in dic1.items(): #循环打印键值,返回的结果是元组格式的键值 print(i)
for k,v in dic1.items(): #循环打印键值,将键值的结果赋给k和v,输出结果为字符串的格式 print(type(k),k,v)
说明:for k,v in dic1.items():这个可以参考如下代码
a = 1 b = 2 #要求再一行里代码里实现互换ab的值 a,b = b,a print(a,b) #扩展:定义变量 a,b = [1,2] print(a,b) a,b = (1,2) print(a,b) '''
6、字典的实操
dic5 = { 'name':["ouyang",'qiyi','zhangsan'], 'age':{ 'ouyang':22, 'qiyi':23, 'zhangsan':25 }, 'salary':20000, } # dic5['salary'] = 25000 #修改字典里salary的值 # dic5["name"].append("lisi") #再name对应的列表里追加一个lisi # dic5["name"][1] = dic5["name"][1].upper() #将name对应的值中的qiyi大写 # dic5["age"]["female"] = '0' #再age键的值里面添加"female":0 这个键值 # print(dic5) #输出结果

浙公网安备 33010602011771号