03-Python基础之字典

python基础之字典

1.字典

数据类型划分:可变数据类型和不可变数据类型

不可变数据类型:元组,bool int str       可哈希

可变数据类型:list,dict set    不可哈希

dict key 必须是不可变数据类型,可哈希,
value:任意数据类型。

2.字典的增删改查

#字典的增删改查,
# 增,直接用字典键值增加,有则修改值没有增加
dic1 = {'age': 18, 'name': 'huangjin', 'sex': 'male',}
dic1['phone'] = 17678963254
dic1['age'] = 20
print(dic1)   #{'phone': 17678963254, 'name': 'huangjin', 'age': 20, 'sex': 'male'}

dic1.setdefault('Nation','汉族')       #setdefault设置,有不操作,没有新建一个键,值没有复制则为None
print(dic1)

#删除
# print(dic1.pop('age'))   #一处键,返回键值为20,可以设置返回为None
# print(dic1.pop('二哥', None))  # 可设置返回值     返回值为None
# print(dic1)                 #{'Nation': '汉族', 'name': 'huangjin', 'sex': 'male', 'phone': 17678963254}

#print(dic1.popitem())  # 随机删除 有返回值 返回的元组里面是删除的键值

# del dic1['name']  #直接删除键值
# del dic1        #删除字典
# print(dic1)

# dic1.clear() #清空字典

#改,直接对键赋值,update更新
dic = {"name":"jin","age":18,"sex":"male"}
dic2 = {"name":"alex","weight":75}
dic2.update(dic)


# print(dic1.keys(),type(dic1.keys()))
# print(dic1.values())
# print(dic1.items())

3.字典的for循环遍历

三种方式:遍历键,遍历值,遍历键值

dic = {'sex': 'male', 'name': 'jin', 'weight': 75, 'age': 18}
key = []
for i in dic.keys():    #遍历键  key = ['weight', 'age', 'name', 'sex']
    key.append(i)

val = []
for i in dic.values():#遍历值val = [75, 18, 'jin', 'male']
    val.append(i)

dic_list = []
for i in dic:  #默认遍历键 dic_list = ['weight', 'age', 'name', 'sex']
    dic_list.append(i)

print(key,val,dic_list)

for k,v in dic.items(): #遍历键值
    print(k,v)
'''
age 18
weight 75
sex male
name jin
'''

字典嵌套:即字典中还有字典,如需修改,字典按键值,嵌套列表按列表索引值

dic = {
    'name':['huangjin','baiyin','bojin'],
    'fav':{
        'girl':'多多的',
        'money':'无穷的',
           },
    'age':21,
    'nation':'布依族'
}

#修改黄金为钱
dic['name'][0] = ''
print(dic)  #{'age': 21, 'fav': {'girl': '多多的', 'money': '无穷的'}, 'nation': '布依族', 'name': ['钱', 'baiyin', 'bojin']}
#修改girl为苗条的
dic['fav']['girl'] = '苗条'
print(dic)#{'name': ['钱', 'baiyin', 'bojin'], 'fav': {'money': '无穷的', 'girl': '苗条'}, 'nation': '布依族', 'age': 21}

注意:Python3.6以后字典默认是有序的,pytho3.5以前的字典都是无序,别问我为什么知道

4.总结

python中主要还是字符串,列表,字典之间的转换,需要熟练掌握常用方法,排序等等,Py3.5及以前版本如需使用有序字典需要导入OrderedDict 

 
自学课程参照老男孩全栈视频
原文地址:https://www.cnblogs.com/chenrongjin/p/10014476.html