11-python字典使用和三级菜单

字典

#字典是无序的,但key是唯一的。
'''
info = {
    "stu1101":"Zhan San",
    "stu1102":"Li Si",
    "stu1103":"Wang Wu",
    "stu1104":"Zhao Liu"
}
print(info)
print(info["stu1101"])#1、根据键取出对应的值
info["stu1101"] = "张三"#2、如果key存在就修改,否则就创建,如下
info["stu1105"] = "Liu Qi"
del info["stu1101"]#3、删除某个元素
info.pop("stu1102")#删除某个元素
info.popitem()#随机删除某个元素
print(info)

#第二种方式查找,若字典中不存在要查找的元素就返回none,有的话就返回。
print(info.get("stu1101"))#安全获取方法
print("stu1101" in info)#判断字典中是不是存在这个key对应的元素,在python2.x中是这个方法:info.haskey("stu1101")
'''
#字典的嵌套
catalog = {
    "欧美":{
        "www.youporn.com":["很多免费的,世界最大的","质量一般"],
        "www.pornhub.com":["很多免费的,也很大","质量yourporn高点"],
        "letmedothistoyou.com":["多是自拍,高质量图片很多","资源不多,更新慢"],
        "x-art.com":["质量很高,真的很高","全部收费,你请绕过"]
    },
    "日韩":{
        "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了,听说是收费的"]
    },
    "大陆":["全部免费,真好,好人一生平安","服务器在国外,速度有点慢"]
}
#print(catalog.values())#打印所有的values
#print(catalog.keys())#打印所有的keys

catalog.setdefault("台湾",{"taiwan":[1,2,3,4]})#若key为台湾存在,不进行任何操作,不存在,就添加
print(catalog)

b = {
    "大陆":"台湾自古以来就是中国领土不可分割的一部分",
    "上蔡县":"我就是上蔡县的人",
    "河南":"河南自古以来就是人口大省"
}

catalog.update(b)#字典b中的key如果有和catalog中相同的就把原来的value替换掉,没有的话就合并
print(catalog)

print(catalog.items())#把字典中的键值对转换成列表

#初始化字典
c = dict.fromkeys([1,2,3],"xieweiyan")
print(c)#打印:{1: 'xieweiyan', 2: 'xieweiyan', 3: 'xieweiyan'}

#字典循环
#方法一:
person = {
    "name":"xieweiyan",
    "age":"27",
    "height":"58"
}

for i in person:#直接索引,效率比较高
    print(i,person[i])
#方法二:
for m,n in person.items():#先把字典转换成列表,然后再遍历,效率没有方法一高
    print(m,n)

三级菜单程序:

data = {
    "北京":{
        "昌平":{
            "沙河":["oldboy","test"],
            "天通苑":["链家地产","我爱我家"]
        },
        "朝阳":{
            "望京":["奔驰","陌陌"],
            "国贸":["CICC","HP"],
            "东直门":{"Advent","飞信"}
        },
        "海淀":{}
    },
    "山东":{
        "德州":{},
        "青岛":{},
        "济南":{}
    },
    "广东":{
        "东莞":{},
        "常熟":{},
        "佛山":{}
    }
}

exit_flag = False
while not exit_flag:
    for i in data:
        print(i)
    choice = input("选择进入>>>:")
    if choice in data:
        while not exit_flag:
            for m in data[choice]:
                print("\t",m)
            choice2 = input("选择进入2>>>:")
            if choice2 in data[choice]:
                while not exit_flag:
                    for n in data[choice][choice2]:
                        print("\t\t", n)
                    choice3 = input("选择进入3>>>:")
                    if choice3 in data[choice][choice2]:
                        for p in data[choice][choice2][choice3]:
                             print("\t\t\t",p)
                        choice4 = input("按b退回上一级菜单")
                        if choice4 == "b":
                            pass#两个作用:1、占位符;2、先放着不写
                        elif choice4 == "q":#输入q退出程序
                            exit_flag = True
                    if choice3 == "b":#输入q退回上级菜单
                        break
                    elif choice3 == "q":#输入q退出程序
                        exit_flag = True
            if choice2 == "b":#输入q退回上级菜单
                break
            elif choice2 == "q":#输入q退出程序

你可能感兴趣的:(11-python字典使用和三级菜单)