欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

第五天、(二)字典

程序员文章站 2022-05-03 08:18:23
...

字典

字典:无序的可修改的序列
格式:a={‘name’:’‘蔡徐空’’,‘age’:18},
创建空字典:dict()
注意:
1.重要–字典的key不能是可变类型的,例如列表

2.同一字典有两个相同的key,会保留后一个key的数据


↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓以下为字典的属性方法↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

一、添加

1.字典名[key]=new_value 即直接修改/如果没有,则为添加

dic = {'a': 1, 'b': 2, 'c': 3}
dic['d'] = 4
print(dic)
dic['a'] = 'xxx'
print(dic)

结果:
第五天、(二)字典
2.覆盖或者添加update()

dic1 = {'a': 1, 'b': 2, 'c': 3}
dic2={'a':'xxx','d':'zzzz'}
dic1.update(dic2)#dic和dic1都有的key,dic1会覆盖dic,没有的则添加至里面
print(dic1)

结果:
第五天、(二)字典
3.只能添加的函数setdeafult()

dic = {'a': 1, 'b': 2, 'c': 3}
dic.setdefault('a',4)#只能添加,如果原来有同key的,不会改变
print(dic)
dic.setdefault('d',6)
print(dic)

结果:
第五天、(二)字典


二、删除

clear(), del ,pop(),remove()

dic = {'a': 1, 'b': 2, 'c': 3}
b = dic.pop('a')  # 因为字典是无序的,所以必须写key
print(b)
print(dic)

dic = {'a': 1, 'b': 2, 'c': 3}
b=dic.popitem()#随机弹出一个,储存为元组,删除原来字典中的一个
print(b)
print(dic)

dic = {'a': 1, 'b': 2, 'c': 3}
dic.clear()#清空列表
print(dic)

dic = {'a': 1, 'b': 2, 'c': 3}
del dic['a']#也可以删除整个字典
print(dic)

结果:
第五天、(二)字典


三、提取key,提取value,共同提取----(通过遍历)

1、提取key的keys()-------储存为列表形式
储存为列表形式

dic = {'a': 1, 'b': 2, 'c': 3}
print(dic.keys())
for k in dic.keys():
    print(k)

结果:
第五天、(二)字典
2、提取value的values()-----------储存为列表形式

dic = {'a': 1, 'b': 2, 'c': 3}
print(dic.values())
for v in dic.values():
    print(v)

结果:
第五天、(二)字典
3、提取key和value的items()-----------储存为元组放在列表

dic = {'a': 1, 'b': 2, 'c': 3}
print(dic.items())
for kv in dic.items():
    print(kv)
#-----------------------------------------------------------------
# 还可以分别复制给k,v
dic = {'a': 1, 'b': 2, 'c': 3}
for k, v in dic.items():
    print(k, v)

两种方式的结果:
第五天、(二)字典


四、查询key是否在字典中

dic = {'a': 1, 'b': 2, 'c': 3}
if 'a' in dic:
    print('a在字典dic中')
if 'd'not in dic:
    print('d不在字典dic中')
if 'a' in dic.keys():#效果同第一句话一样
    print('a在字典dic中')

结果:
第五天、(二)字典


综合案例:

案例一:将字典a存为列表b,在把列表b存为字典c,实现互相转化

a = {'name': '张三', 'age': 18, 'sex': '男'}
b = []
c = {}
for k, v in a.items():
    b.append((k, v))
print(b)
#-------------------方法一
for i in b:
    c[i[0]] = i[1] #效果同下
print(c)
#---------------------方法二
for x,y in b:
    c[x]=y
print(c)

结果:
第五天、(二)字典
案例二:将男的加个salary数据,然后将其每行分别打印为key:value

 = {
    '001': {'name': '张三', 'age': 18, 'sex': '男'},
    '002': {'name': '李四', 'age': 19, 'sex': '女'},
    '003': {'name': '王五', 'age': 18, 'sex': '男'},
    '004': {'name': '李柳', 'age': 18, 'sex': '女'}
}
for k, v in a.items():
    print('num:', k, end=' ')
    if v['sex'] == '男':
        v.setdefault('salary', '1000')
    for x, w in v.items():
        print(x, ':', w, end=' ')
    print()

结果:
第五天、(二)字典

相关标签: 字典

上一篇: 图片旋转

下一篇: H5全栈_动画