python中的字典及其操作

时间:2022-12-18 11:25:28

 字典

 

dic = {'name':'alex','age':9000}   #字符串

dic = {1:'a',2:'b',3:'c'}           #数字

dic = {True:'1',False:'0'}          #布尔值

dic = {(1,2,3):'abc'}                #元组
 
dic = {[1,2,3]:'abc'}

 

dict  用{}来表示    里面是键值对数据  {key:value} , 它具有唯一性

key (键  都必须是可哈希的   不可变的数据类型就可以当做字典中的键)

value (值  没有任何限制)

增删改查

dic = {'火女':'安妮','火男':'布兰德','维恩':'暗影猎手','剑豪':'哈莎阁'}

dic['诺克萨斯'] = '人头狗'   # 新增
print(dic) >>> {'火女': '安妮', '火男': '布兰德', '维恩': '暗影猎手', '剑豪': '哈莎阁', '诺克萨斯': '人头狗'}
dic.setdefault('火女','安妮')     # 如果在字典中存在就不进行任何操作,不存在就进行添加
dic.setdefault('火女','提伯爵') >>>
{'火女': '提伯爵', '火男': '布兰德', '维恩': '暗影猎手', '剑豪': '哈莎阁', '诺克萨斯': '人头狗'}
 dic[key] = value

 dic.setdefault(key,value)   如果键在字典中存在不进行任何操作,否则就添加,可以通过key查询,没有这个key返回None

 

 pop(key)                    有返回值  返回的值是被删除的value

 del dic[key]      

 popitem()                   随机删除,默认删除最后一个键值对,返回值是一个元组 (key,value)

 clear()                     清空字典

dic = {'火女':'安妮','火男':'布兰德','维恩':'暗影猎手','剑豪':'哈莎阁'}
dic.popitem() #随机删除 默认删除最后一个, 返回值是一个元组 (key,value)
print(dic) >>> {'火女': '安妮', '火男': '布兰德', '维恩': '暗影猎手'}
del dic['火女'] >>> {'火男': '布兰德', '维恩': '暗影猎手'} #删除 "火女:安妮"
dic.clear() >>> {} #清空

 

dic[key] = 内容 # 修改的是key对应的value

dic.update(字典) # 个人理解为更新,将新旧两个字典合并到一起,如果相同,新的会覆盖旧的

dic = {'火女':'安妮','火男':'布兰德','维恩':'暗影猎手','剑豪':'哈莎阁'}
dic['剑豪'] = '哈撒尅'# 强制修改
print(dic) >>> {'火女': '安妮', '火男': '布兰德', '维恩': '暗影猎手', '剑豪': '哈撒尅'}



dic = {'火女':'安妮','盖伦':'大宝剑','维恩':'暗影猎手','剑豪':'疾风剑豪'}
dic1 = {'盖伦':'草丛伦','剑豪':'托儿所','':'红领巾'}
dic.update(dic1)
print(dic) >>> {'火女': '安妮', '盖伦': '草丛伦', '维恩': '暗影猎手', '剑豪': '托儿所', '': '红领巾'}

 

get(key)

dic[key]

for 循环

setdefault(key)

for 循环       #元组  键  值   键值对

    for i in  dic:
        print(i)     #for 循环默认是获取字典中的键

    print(dic['key'])                   #查看1   没有这个键的时候查询会报错
    print(dic.get('一个不存在的key','你傻啊,没有!')) >>> "你傻啊,没有!"   #查看2   没有则返回None 当没有的时候可以指定返回内容,这个会返回 "你傻啊,没有"

    print(dic.setdefault('易大师范湖')) >>>  None      #查看3    没有返回None

 

字典的其他操作(字典中独特的):

 

        keys     获取到所有的键存在一个高仿的列表中

 

        values   获取到所有的值存在一个高仿的列表中

 

        items    获取到所有的键值对已元祖的形式存在一个高仿的列表中

 
keys  values items
 
dic = {'火女':'安妮','盖伦':'大宝剑','维恩':'暗影猎手','剑豪':'疾风剑豪'}
 print(dic.keys())  >>>  dict_keys(['火女', '盖伦', '维恩', '剑豪'])     # (高仿列表) 列表的操作都可以在其上面
 print(dic.values()) >>>    dict_values(['安妮', '大宝剑', '暗影猎手', '疾风剑豪'])  # (高仿列表)  列表的操作都可以在其上面
 print(dic.items()) >>>  dict_items([('火女', '安妮'), ('盖伦', '大宝剑'), ('维恩', '暗影猎手'), ('剑豪', '疾风剑豪')])
 for i in dic.keys():
     print(i)  >>>
 火女
盖伦
维恩
剑豪
 
    for i in dic:
        print(i) >>火女
盖伦
维恩
剑豪>      #获取到字典中的每一个键
 
    for i in dic.values():
        print(i)  >>>
安妮
大宝剑
暗影猎手
疾风剑豪   #获取到字典中的每一个值
 
    for i in dic.items():
        print(i)  >>>
('火女', '安妮')
('盖伦', '大宝剑')
('维恩', '暗影猎手')
('剑豪', '疾风剑豪')    #获取到字典中的键值对,以元组的形式输出

 

 解构(解包):

 

            a,b  = 1, 2

 

            a,b  = (1,2)

 

            a,b  = [1,2]

python中的字典及其操作
a,b = '12'   #将后边解构打开按位置赋值给变量 支持  字符串 列表 元组
    print(a) >>> 1
    print(b) >>> 2
    dic = {'易大师':'剑圣','剑豪':'托儿所','草丛伦':'大宝剑'}
    for a,b in dic.items():
        print(a)    #  易大师 剑豪 草丛轮

        print(b)   # 剑圣 托儿所 大宝剑
>>>
易大师
剑圣
剑豪
托儿所
草丛伦
大宝剑
    dic1 = {}

    dics = dic1.fromkeys([1,2,3],'abc)
>>> {1: 'abc', 2: 'abc', 3: 'abc'}

 

python中的字典及其操作

 字典的嵌套:

与列表的嵌套操作是相同的

dic = {
    'name':'汪峰',
    'age':43,
    'wife':{
        'name':'国际章',
        'age':39,
        'salary':100000
    },
    'baby':[
        {'name':'熊大','age':18},
        {'name':'熊二','age':15},
    ]
 
}
 
dic['baby'][0]['age'] = 19 #  修改熊大的年龄为19
 
print(dic) >>>
{'name': '汪峰', 'age': 43, 'wife': {'name': '国际章', 'age': 39, 'salary': 100000}, 'baby': [{'name': '熊大', 'age': 19}, {'name': '熊二', 'age': 15}]}