...无锡网站制作,系统优化有什么用,seo网站优化工具大全,如何制作一个官网字典
字典的增删改查
字典的创建方式#xff1a;
#创建字典类型
info {name:李白,age:25,sex:男}
msg{user01:Longzeluola,user02:xiaozemaliya,user03:cangjingkong}
字典存储数据的时候#xff0c;采取的是key:value的形式#xff0c;是一组无序的存储。在需要的时候通过k…字典
字典的增删改查
字典的创建方式
#创建字典类型
info {name:李白,age:25,sex:男}
msg{user01:Longzeluola,user02:xiaozemaliya,user03:cangjingkong}
字典存储数据的时候采取的是key:value的形式是一组无序的存储。在需要的时候通过key就能够快速的获取value。
msg {user01:Longzeluola,user02:xiaozemaliya,user03:cangjingkong}print(msg[user01]) #Longzeluola
字典的值可以根据key值获取并且进行更改。
msg {user01:Longzeluola,user02:xiaozemaliya,user03:cangjingkong}
msg[user03] 泷泽萝拉
结果
{user01: Longzeluola, user02: xiaozemaliya, user03: 泷泽萝拉}
那么字典中如果需要新添加数据的话也可以通过设置key-value的形式来进行添加。
msg {user01:Longzeluola,user02:xiaozemaliya,user03:cangjingkong}
msg[user04] MaLiCang
print(msg)
结果
{user01: Longzeluola, user02: xiaozemaliya, user03: cangjingkong, user04: MaLiCang}
而如果需要删除Python中的数据可以使用如下的三种方法
msg {user01:Longzeluola,user02:xiaozemaliya,user03:cangjingkong}#删除字典方法一#del msg[user01] # {user02: xiaozemaliya, user03: cangjingkong}
#删除字典方法二#msg.pop(user01) # # {user02: xiaozemaliya, user03: cangjingkong}
#删除字典方法三
msg.popitem() #{user01: Longzeluola, user02: xiaozemaliya}
补充
在上面的一些操作中我们基本实现了字典的增删改查但是在查的过程中有一点是需要注意的如上面的查询方式dir[key]这种如果key值并不存在于字典中就会出现一个keyerror的错误所以为了避免错误我们通常情况下都不会使用这种方式来进行字典的key值查找而是通过下面的方法。
#创建一个字典
msg{user1101:Xiaozemaliya,user1102:Wutentlan,user1103:Cangjingkong}#通过key值获取value 使用get方式存在key那么就返回对应的value如果不存在key那么就返回None
print(msg.get(user1101)) #Xiaozemaliya
print(msg.get(user1108)) #None
判断一个key是否存在于一个字典中可以使用in 运算符。
#创建一个字典
msg{user1101:Xiaozemaliya,user1102:Wutentlan,user1103:Cangjingkong}#使用in检测字典中是否存在指定的key
print(user1101 in msg) #True
print(user1109 in msg) #False
上面是使用in运算符判断key是否存在需要注意的是在python2.x 的版本中,判断一个key是否存在于字典中可以使用msg.has_key()的方式来进行判断。
多级字典嵌套及操作
在字典中一直以key-value的形式进行数据存储但是value的值除了是字符串以外还可以是其他类型的值。同时在字典中也可以继续嵌套字典等数据。具体操作如下
#创建一个多级的字典
av_catalog {欧美:{www.youporn.com: [很多免费的,世界最大的,质量一般],www.pornhub.com: [很多免费的,也很大,质量比yourporn高点],letmedothistoyou.com: [多是自拍,高质量图片很多,资源不多,更新慢],x-art.com:[质量很高,真的很高,全部收费,屌比请绕过]
},日韩:{tokyo-hot:[质量怎样不清楚,个人已经不喜欢日韩范了,听说是收费的]
},大陆:{1024:[全部免费,真好,好人一生平安,服务器在国外,慢]
}
}#更改key值
av_catalog[大陆][1024][1] 可以在国内做一个镜像
print(av_catalog)
关于字典的补充说明
values 打印字典里面的所有的值
msg {stu1101:XiaomingStudent,stu1102:XiaohongStudent,stu2201:XiaolvStudent,stu3101:XiaoZhangStudent}#values() 方法 输出字典中所有的值
print(msg.values())
结果为:
dict_values([XiaomingStudent, XiaohongStudent, XiaolvStudent, XiaoZhangStudent])
keys 打印所有的key
msg {stu1101:XiaomingStudent,stu1102:XiaohongStudent,stu2201:XiaolvStudent,stu3101:XiaoZhangStudent}#keys 打印所有的key
print(msg.keys())
结果为
dict_keys([stu1101, stu1102, stu2201, stu3101])
setdefault
设置新的key:value 如果设置的key在字典中存在那么就会把之前的key以及value返回新设置的就会失效如果没有就把设置的key:value添加到字典中去。
msg {stu1101:XiaomingStudent,stu1102:XiaohongStudent,stu2201:XiaolvStudent,stu3101:XiaoZhangStudent}#使用setdefault方法设置key:value
msg.setdefault(stu3101,YanYanStudent) #此时3101key 已经存在并不会新增的内容所影响
print(msg)
msg.setdefault(stu3102,LuLuStudent) #此时新增加的key 3102 添加成功
print(msg)
update 更新合并
使用update方法可以将两个字典合并并且如果字典中存在重复的内容会产生覆盖如果内容不重复就会被合并到一个字典中。
msg {stu1101:XiaomingStudent,stu1102:XiaohongStudent,stu2201:XiaolvStudent,stu3101:XiaoZhangStudent}
test_info{T1101:YanYanTeacher,T1102:LiBai,stu2201:JingjingStudent}
msg.update(test_info)print(msg)
输出结果为:
{stu1101: XiaomingStudent, stu1102: XiaohongStudent, stu2201: JingjingStudent, stu3101: XiaoZhangStudent, T1101: YanYanTeacher, T1102: LiBai}
items 把一个列表转为一个元组
msg {stu1101:XiaomingStudent,stu1102:XiaohongStudent,stu2201:XiaolvStudent,stu3101:XiaoZhangStudent}print(msg.items())
输出结果为
dict_items([(stu1101, XiaomingStudent), (stu1102, XiaohongStudent), (stu2201, XiaolvStudent), (stu3101, XiaoZhangStudent)])
fromkeys 创建一个初始化列表
test_dir dict.fromkeys([stu01,stu02,stu03],[1,{name:YanYanStudent}])print(test_dir)
输出的结果为:
{stu01: [1, {name: YanYanStudent}], stu02: [1, {name: YanYanStudent}], stu03: [1, {name: YanYanStudent}]}
此时通过dict.fromkeys方法就创建出了一个新的字典但是在这个字典中存在一个容易错的地方如下
test_dir dict.fromkeys([stu01,stu02,stu03],[1,{name:YanYanStudent}])#尝试着更改这个字典中的内容通过key值
test_dir[stu01][1][name] YanYanTeacher
print(test_dir)
我们在代码中更改了其中的一个key的值结果输出却为
{stu01: [1, {name: YanYanTeacher}], stu02: [1, {name: YanYanTeacher}], stu03: [1, {name: YanYanTeacher}]}
此时我们发现所有的key对应的value都被改变了。而这也是我们在使用这个fromkeys方法的时候需要注意的点。
字典的循环输出
将字典中key和value循环输出有以下的两种方式
#创建一个字典
msg {T1101:YanYanTeacher,T1201:LuLuTeacher,T1301:JingJingTeacher}#循环输出字典 -- 第一种方法
for i inmsg:print(i,msg[i])#循环输出字典 -- 第二种方法
for i,v inmsg.items():print(i,v)
上面两种循环输出列表的方式输出的结果是一样的但是较为推荐使用第一种因为第一种方式的执行效率要高于第二种因为第一种是直接根据key值取出value而第二种方式则是要多出一步将字典转换为列表的步骤所以效率相对来讲比较低。