python 字典操作详解

字典操作

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

语法:



info ={
    'stu1001':"TengLan Wu",
    'Stu1002':"Longze Loula",
    'stu1103':"XiaoZe Maliya",
}



增删改查



####字典的定义 key: value
info ={
    'stu1001':"TengLan Wu",
    'Stu1002':"Longze Loula",
    'stu1103':"XiaoZe Maliya",
}
#####查询 字典的数据###############
#####查询所有,但是字典是无序的
print(info)

#如果查询一个只需要查询对方的key
print(info["stu1001"])

#不报错方式查询(安全点)
print(info.get("stu1001"))



####### 修改######

info["stu1001"]="武藤兰"
print(info)

#########添加#########
info["stu1004"]="CangjingKong"
print(info)

########删除######## 两种方法
#第一种
#del info["stu1001"]
print(info)

#第二种
info.pop("stu1103")
print(info)

#还有一个随机删除
info.popitem()

#判断字典里面存不存在这个key

print('stu1005' in info ) # 有的话返回TRUE

#查询所有的values
print(info.values())

#查询所有的key
print(info.keys())

字典的多级嵌套

 

av_catalog={
    "欧美":{
        "www.youporn.com":["很多免费的,世界最大的","质量一般"],
        "www.pornhub.com":["很多免费,也很大","比youporn高点"],
        "letmedothistoyou.com":["多是自拍,高质量图片很多","资源丰富"]
    },
    "日韩":{
        "tokyo-hot":["质量不清楚,个人已经不喜欢日韩","听说是收费的"],
    },
    "大陆":{
        "1024":["全部免费。真好好人一生平安","服务器在国外,慢"]
    }
}


#修改多级嵌套
av_catalog["大陆"]["1024"][1]="可以在国内做镜像"
print(av_catalog)

 

 

各种其他的骚操作


#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: liang 
info ={
    'stu1001':"TengLan Wu",
    'Stu1002':"Longze Loula",
    'stu1103':"XiaoZe Maliya",
}
b={
    'stu1001':"liang",
    1:2,
    2:5
}
#update 合并字典
info.update(b)
print(info)

#items #字典转为列表
print(info.items())

#初始化一个新的字典
#c=info.fromkeys([6,7,8])
c=dict.fromkeys([7,8,9],"test")
print(c)

#fromkeys 坑的地方
#如果里面嵌套了一个字典,修改一个的时候就会修改所有的
#就像浅层copy一样的
d=dict.fromkeys([7,8,9],[1,{"name":"liang"},444])
d[7][1]['name']="cc"
print(d)

 

 

字典循环


#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: liang 
info ={
    'stu1001':"TengLan Wu",
    'Stu1002':"Longze Loula",
    'stu1103':"XiaoZe Maliya",
}

#最基本的循环
for i in info:
    print(i,info[i])

#这种循环花的时间比第一种长,建议使用第一种循环
for k,v in info.items():

    print(k,v)

 

三级菜单的一个实现  超级low的一个代码

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: liang 
date={
    '北京':{
        "昌平":{
        "沙河":["oldboy","test"],
        "天通往":["我爱我家","liang"]
    },
    "朝阳":{
        "望经":["本词","默默"],
        "国贸":["CICC","HP"],
        "东之梦":["Advent","飞信"]
    }
    },
    "江西":{
        "南昌":{
            "南昌县":["现代学院","江西师范大学"],
            "新建县":["江西南昌大学","江西农业大学"]
        },
        "抚州":{
            "东乡县":["小黄","浴缸"],
            "临川区":["临川二中","临川一中"]
        }

    },
    "湖南":{
        "长沙":{
            "aaaa":["vvv","aaaa"],
            "cccc":["cada","cada"]
        }
    }
}

while True:
    for i in date:
        print(i)
    choie=input("你要选择那个城市?1>>>>>")
    if choie in date:
        while True:
            for i2 in date[choie]:
                print(i2)
            choie2=input("你要选择那个城市?2>>>>>")
            if choie2 in date[choie]:
                while True:
                    for i3 in date[choie][choie2]:
                        print(i3)
                    choie3 = input("你要选择那个城市?3>>>>>")
                    if choie3 in date[choie][choie2]:
                        for i4 in date[choie][choie2][choie3]:
                            print(i4)
                        choie4=input("已经是最后一层!按b退出>>>>>")
                        if choie4 == 'b':
                            pass
                        elif choie4 =='q':
                            exit("bye!!!!")
                        else:
                            print("你输入的有误")
                    if choie3== 'b':
                        break
                    elif choie3 =='q':
                        exit("bye !!!")
                    else:
                        print("你输入的有误")
            if choie2=='b':
                break
            elif choie2=='q':
                exit("bye!!!!")
            else:
                print("你输入的有误")
    if choie=='b':
        print("如果退出请按q")
    elif choie =='q':
        exit("bye !!!")
    else:
        print("你输入的有误")