测试题:
0.当你在听到小伙伴们讨论‘映射’、‘哈希’、‘散列’或者‘数组关系’的时候,事实上他们就是在讨论什么?
答案:事实上他们都是在讨论“字典”
1.尝试一下将数据(‘F’:70,'C':67,'h':104,i:105,s'115)创建为一个字典并访问键‘C’对应的值
mydict=dict((('a',2),('b',3),('c',4)))
mydict['c']
2.用方括号[]括起来的数据我们叫列表,用大括号‘{}’括起来的数据我们叫字典,对吗?
不是,{}括起来如果没有映射关系,比如{1,2,3,4,5}就是集合而不是字典
3.如何理解有些东西字典做得到,但万能的列表却难以实现的?
映射类型
4.下面这些代码都在执行一样的操作,你看的出差别吗?
a=dict(one=1,two=2,three=3)
b={'one':1,'two':2,'three':3}
c=dict(zip(['one','two','three'],[1,2,3]))
d=dict([('two',2),('one',1),('three',3)])
e=dict({'three':3,'one':1,'two':2})
都是在创建一个字典:{'one':1,'two':2,'three':3}
5.如图,你可以推测出打了马赛克部分的代码吗?
data="1000,小甲鱼,男"
MyDict={}
(MyDict['id'],MyDict['name'],MyDict['sex'])=
print("ID: "+MyDict['id'])
print("Name: "+MyDict['name'])
print("Sex "+MyDict['sex'])
输出的结果是:
ID: 1000
Name: 小甲鱼
Sex 男
(MyDict['id'],MyDict['name'],MyDict['sex'])=(data[:4],data[5:8],data[9])
答案:data.split(',')
动动手:
telebook={}
n=int(input('请输入相关的指令代码:'))
while(n):
if n==4:
print('|---感谢使用通讯录程序---|')
break
elif n==1:
name=input('请输入联系人姓名:')
if name in telebook:
print(name,' : ',telebook[name])
else:
print(name,'不存在')
elif n==2:
name=input('请输入联系人姓名:')
if name in telebook:
print('您输入的姓名在通讯录中已存在--->>',name,':',telebook[name])
answer=input('是否修改用户资料(YES/NO):')
if answer=='YES':
number=input('请输入用户联系电话:')
telebook[name]=number
elif answer=='NO':
pass
else:
number=input('请输入用户联系电话:')
telebook[name]=number
elif n==3:
telebook.clear()
print('')
n=int(input('请输入相关的指令代码:'))
答案:
print('|--- 欢迎进入通讯录程序 ---|')
print('|--- 1:查询联系人资料 ---|')
print('|--- 2:插入新的联系人 ---|')
print('|--- 3:删除已有联系人 ---|')
print('|--- 4:退出通讯录程序 ---|')
contacts = dict()
while 1:
instr = int(input('\n请输入相关的指令代码:'))
if instr == 1:
name = input('请输入联系人姓名:')
if name in contacts:
print(name+':'+contacts[name])
else:
print('您输入的姓名不在通讯录中!')
if instr == 2:
name = input('请输入联系人姓名:')
if name in contacts:
print('您输入的姓名在通讯录中已存在 --->>',end='')
print(name+':'+contacts[name])
if input('是否修改用户资料(YES/NO):') == 'YES':
contacts[name] = input('请输入用户联系电话:')
else:
contacts[name] = input('请输入用户联系电话:')
if instr == 3:
name = input('请输入联系人电话:')
if name in contacts:
del(contacts[name]) #也可以使用dic.pop()
else:
print('请输入的联系人不存在。')
if instr == 4:
break
print('|--- 感谢使用通讯录程序 ---|')