字典基础

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:woshinidaye
#列表、元组、字符串、字典、集合、文件、字符编码转码、内置函数
#列表、元组、字符串、字典、集合、文件、字符编码转码、内置函数

#如果一个对象,存在大量的可变参数,如果要把这些都保存下来,按理列表也能实现,但是取的时候比较麻烦,这个时候就可以考虑使用字典了!
#key-value的数据类型
'''
stu = {
    'stu1':'zhangsan',          #K-V是一一对应的
    'stu2':'lisi',
    'stu3':'laowang',
    'Abc':'1Abc',
}
print(stu)

#输出{'stu1': 'zhangsan', 'stu2': 'lisi', 'stu3': 'laowang', 'Abc': '1Abc'}
#字典是没得顺序的!!!!!所以没得下标,index
print(stu['stu1'])          #查
stu['stu1']='123456'        #修改
stu['stu4']='asan'          #增
#del stu['Abc']              #删除
#stu.pop('Abc')              #删除
#stu.popitem()                   #因为字典没有顺序,所以随便删除一个
print(stu)
#补充一下查找
print(stu['stu1'])      #如果查找的对象存在,则正常输出,否则会报错,所以用这个方法一定要保证数据存在
#print(stu['stu12345678'])
print(stu.get('stu123'),stu.get('stu1'))        #没有会返回NONE
print('stu1' in stu,'stu78909090' in stu)       #判断是否存在,等同于python2中 stu.has_key('stu1')

print(' parting-1'.rjust(40,'>'),''.ljust(40,'<'))
#字典支持多级嵌套,里面的KEY-value可以是列表、元组
#因为之前说的K-V是一一对应,stu1有多个变量就需要用到列表

teacher = {
    'boduo':[160,34,'D'],
    'mali':[157,36,'C'],
    'julia':[162,36,'F']
}
print(teacher)
print(teacher.values())     #把所有的value打印出来,不需要KEY
print(teacher.keys())       #把所有的key打印出来,不需要value
print(teacher['mali'][1])
print(teacher.get('mali')[0])
print(teacher.get('mali1231231231231'))
teacher.setdefault('cangjingkong',[156,36,'D'])      #setdefault  没有cangjingkong就创建一个,有的话,就返回相应的值
teacher.setdefault('julia',[100,32,'HHHHHHHH'])
print(teacher.items(),type(teacher.items()))

for i in teacher:
    print(i,teacher[i])   #建议使用这类方式,效率更高
for k,v in teacher.items():
    print(k,v)
print('ending'.center(100,'='))
'''

#三级菜单的作业
China ={
    'chongqing':{'tongliang':['yongjia','xinmin'],
                'yongchuan':['tuqiao','gonghe'],
                    },
    'sichuan':{'chengdu':['wuhou','jinjiang'],
               'mianyang':['mianzhu','santai']
               },
    'guizhou':{'guiyang':['duyun','longodngbao'],
               'liupanshui':['liuzhi','anshun']
               }
}
#print(China())
while True:
    for i in China:
        print(i)
    print('an q or Q 退出')
    print('press up or UP 退出')
    choice_1 = input('qing shu ru>>>>11>>>'.rjust(50,'='))
    if choice_1 in China:
        while True:
            for a in China[choice_1]:
                print('\t',a)
            print('an q or Q 退出')
            print('press up or UP 退出')
            choice_2 = input('\t\tqing shu ru>>22>>>'.rjust(50,'='))
            if choice_2 in China[choice_1]:
                while True:
                    for b in China[choice_1][choice_2]:
                        print('\t\t',b)
                    print('an q or Q 退出')
                    print('press up or UP 退出')
                    choice_3 = input('\t\t\tqing shu ru>>33>>>'.rjust(50,'='))
                    if choice_3 in China[choice_1][choice_2]:
                        print(choice_3)
                    elif choice_3 == 'q' or choice_3 =='Q':
                        print('byebye')
                        exit()
                    elif choice_3 == 'up' or choice_3 == 'UP':
                        break
                    else:
                        continue
            elif choice_2 == 'q' or choice_2 == 'Q':
                print('byebye')
                exit()
            elif choice_2 == 'up' or choice_2 == 'UP':
                break
            else:
                print('\tni de xuan zhe you wu')
    elif choice_1 == 'q' or choice_1 == 'Q':
        print('byebye')
        exit()
    elif choice_1 == 'up' or choice_1 == 'UP':
        break
    else:
        print('\t ni de xuan ze you wu')

 

posted @ 2021-10-16 11:07  woshinidaye  阅读(58)  评论(0)    收藏  举报