博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
字典 dict{}
阅读量:4614 次
发布时间:2019-06-09

本文共 3417 字,大约阅读时间需要 11 分钟。

字典一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划、字母来查对应页的详细内容。

语法:

info = {    'stu1101': "TengLan Wu",    'stu1102': "LongZe Luola",    'stu1103': "XiaoZe Maliya",}

字典的特性:

  • dict是无序的
  • key必须是唯一的,so 天生去重

增加

>>> info["stu1104"] = "苍井空">>> info{
'stu1102': 'LongZe Luola', 'stu1104': '苍井空', 'stu1103': 'XiaoZe Maliya', 'stu1101': 'TengLan Wu'}

修改

>>> info['stu1101'] = "武藤兰">>> info{
'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1101': '武藤兰'}

删除

>>> info{
'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1101': '武藤兰'}>>> info.pop("stu1101") #标准删除姿势'武藤兰'>>> info{
'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya'}>>> del info['stu1103'] #换个姿势删除>>> info{
'stu1102': 'LongZe Luola'}>>> >>> >>> >>> info = {
'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya'}>>> info{
'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya'} #随机删除>>> info.popitem()('stu1102', 'LongZe Luola')>>> info{
'stu1103': 'XiaoZe Maliya'}

查找

>>> info = {
'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya'}>>> >>> "stu1102" in info #标准用法True>>> info.get("stu1102") #获取'LongZe Luola'>>> info["stu1102"] #同上,但是看下面'LongZe Luola'>>> info["stu1105"] #如果一个key不存在,就报错,get不会,不存在只返回NoneTraceback (most recent call last): File "
", line 1, in
KeyError: 'stu1105'

多级字典嵌套操作

av_catalog = {    "欧美":{        "www.youporn.com": ["很多免费的,世界最大的","质量一般"],        "www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],        "letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],        "x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"]    },    "日韩":{        "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"]    },    "大陆":{        "1024":["全部免费,真好,好人一生平安","服务器在国外,慢"]    }}av_catalog["大陆"]["1024"][1] += ",可以用爬虫爬下来"print(av_catalog["大陆"]["1024"])#ouput ['全部免费,真好,好人一生平安', '服务器在国外,慢,可以用爬虫爬下来']
av_catalog["taiwan"]={'baidu':['这他妈是个搜索器,星弟别被骗']}  #添加‘百度’ print(av_catalog['taiwan']) av_catalog['taiwan']['baidu'][0] +=',谢谢老哥提醒'         #增加内容 print(av_catalog['taiwan'])

 

 

其他用法

#values>>> info.values()      #取值dict_values(['LongZe Luola', 'XiaoZe Maliya'])#keys>>> info.keys()       #取键dict_keys(['stu1102', 'stu1103'])#setdefault          #先去字典里取值,能取到就返回,不能取到就创建一个新的 >>> info.setdefault("stu1106","Alex")'Alex'>>> info{
'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'}>>> info.setdefault("stu1102","龙泽萝拉")'LongZe Luola'>>> info{
'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'}#update          #更新,把b字典更新到info里边,如果能更新就更新,不能更新就添加进去>>> info{
'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'}>>> b = {1:2,3:4, "stu1102":"龙泽萝拉"}>>> info.update(b)>>> info{
'stu1102': '龙泽萝拉', 1: 2, 3: 4, 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'} #items          #以列表的形式取出“键值对”info.items()      dict_items([('stu1102', '龙泽萝拉'), (1, 2), (3, 4), ('stu1103', 'XiaoZe Maliya'), ('stu1106', 'Alex')])#通过一个列表生成默认dict,有个没办法解释的坑,少用吧这个>>> dict.fromkeys([1,2,3],'testd'){
1: 'testd', 2: 'testd', 3: 'testd'}

 

 循环dict 

#方法1for key in info:     #print(key)就是打印info的key,info[key]就是取valve    print(key,info[key])#方法2for k,v in info.items(): #会先把dict转成list,数据里大时莫用    print(k,v)

例如:

info={
'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'}for i in info: print(i)print(info['stu1102'])    #print(key)就是打印info的key,info[key]就是取valve
for i in info: print(i,info[i])

 

转载于:https://www.cnblogs.com/PYlog/p/8601960.html

你可能感兴趣的文章
[luogu3203 HNOI2010] 弹飞绵羊 (分块)
查看>>
mui搜索框 搜索点击事件
查看>>
2016012003+陈琦+散列函数的应用及其安全性
查看>>
Android 状态栏通知Notification、NotificationManager详解
查看>>
UIApplicationDelegate协议
查看>>
Jmeter测试dubbo接口填坑
查看>>
[zz]GDB调试精粹及使用实例
查看>>
数据库的创建和删除
查看>>
最简单的三层实例【插入据
查看>>
设计模式学习笔记——Prototype原型模式
查看>>
pom.xml里有红叉报错的解决办法
查看>>
Perl last和next的用法区别
查看>>
Selenium 管理 Cookies
查看>>
exceptionfunction[LeetCode]Permutations
查看>>
bzoj 4595 激光发生器
查看>>
multi cookie & read bug
查看>>
js时间转换
查看>>
(转载) Android Studio你不知道的调试技巧
查看>>
队列实现霍夫曼树
查看>>
关于微信公众平台测试号配置失败的问题
查看>>