练习题以及笔记

info = {'朱彤':
            {'addr': '北京', 'phone': '110', 'age': 18},
        '李总':
            {'addr': '上海', 'phone': '120', 'age': 19},
        '魏总':
            {'addr': '天津', 'phone': '119', 'age': 20}
        }
import sys
while True:
    name = input("请输入所要查询员工的姓名(朱彤/李总/魏总):").strip()
    if name in info.keys():
        while True:
            choice = input("请输入要查询的信息(addr/phone/age/b:返回首层): ").strip()
            #print(info[name])
            if choice == 'b':
                break
            if choice in info[name]:
                info1 = info.get(name)
                info2 = info1.get(choice)
                print(info2)
            else:
                 print('你输入的信息类型有误,请重新输入')
    elif choice == 'q':
        sys.exit()
    else:
        print('此员工不存在,继续查询:')
        continue

2 元组
相对不可变
t =
t1 = (1, 2)
t2 = (1, 2 ,{'a' , 1})

d2 = {
            'a' : 1
            'li' : [
                    'b',
                    2,
                    3,
                    { 'c', 30  }
                    ]
          }
d2.get(a)
d2.get(li).[-1].get(c) //若c的值不存在,则返回none
d2.get(li).[3].[c] //若c的值不存在,则报错
d2.keys() //获取所有key
d2.values()//获取所有value
d2.items()//获取所有的key和value

字典:


data = [
        ("ip", "192.168.1.100"),
        ("ip", "192.168.1.200"),
        ("port", 22),
        ("user", "yangge"),
        ("user", "shark")
       ]

dic = {}
for k, v in data:    ##解包(可打印print(k,v)查看
    #print(dic)
    if k not in dic:   ##空字典
        dic[k] = [v]   ##给k一个v  后续的v会覆盖之前的v  所以只会有一个ip  需要append实现附加
        print(dic)
    else:
        dic[k].append(v) ##若字典中k存在,则不会替换  只会附加v
print(dic)


for k, v in data:
#     dic.setdefault(k, v) ##这种写法如果一个k两个值,之后的值会覆盖之前的值
    print(dic)
    dic.setdefault(k, []).append(v)
print(dic)

猜你喜欢

转载自blog.csdn.net/weixin_33982670/article/details/87479835
今日推荐