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)       #输出结果
posted @ 2018-07-21 16:50  欧-阳  阅读(162)  评论(0)    收藏  举报