练习题以及笔记
2019-01-09 本文已影响4人
朱溪江
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)