0. 当你听到小伙伴们在谈论“映射”、“哈希”、“散列”或者“关系数组”的时候,事实上他们就是在讨论什么呢?
字典
1. 尝试一下将数据('F': 70, 'C': 67, 'h': 104, 'i': 105, 's': 115)创建为一个字典并访问键 'C' 对应的值?
a=dict({'F': 70, 'C': 67, 'h': 104, 'i': 105, 's': 115})
print(a["C"])
2. 用方括号(“[]”)括起来的数据我们叫列表,那么使用大括号(“{}”)括起来的数据我们就叫字典,对吗?
不对,{}里的数据必须是键值,数据之间有对映关系,如果没有的话那叫集合。
比如{"a":1,"b":2}是字典,{a,b,c}是集合。
3. 你如何理解有些东西字典做得到,但“万能的”列表却难以实现(臣妾做不到T_T)?
字典内的数据有对映关系,通过键就可以找到对应的值;有时列表也可以通过索引值实现字典的效果,但是效率不如字典高,它仅仅是通过索引值,数据之间没有什么关系。
4. 下边这些代码,他们都在执行一样的操作吗?你看得出差别吗?
执行的操作是一样的,这是创建字典的不同方法。没差别。
5. 如图,你可以推测出打了马赛克部分的代码吗?
data = "1000,小甲鱼,男"
MyDict = {}
(MyDict['id'], MyDict['name'], MyDict['sex']) = data.split(',')
print("ID: " + MyDict['id'])
print("Name: " + MyDict['name'])
print("Sex " + MyDict['sex'])
动动手:
0. 尝试利用字典的特性编写一个通讯录程序吧,功能如图:
print("""|--- 欢迎进入通讯录程序 ---|
|--- 1:查询联系人资料 ---|
|--- 2:插入新的联系人 ---|
|--- 3:删除已有联系人 ---|
|--- 4:退出通讯录程序 ---|""")
total = dict()
while True:
a=input('\n请输入相关的指令代码:')
code=int(a)
if code == 1:
name = input('请输入联系人姓名:')
if name in total:
print(name + ' : ' + total[name])
else:
print('查无此人')
elif code == 2:
name = input('请输入联系人姓名:')
if name in total:
print('您输入的姓名在通讯录中已存在 -->> ', name , ' : ' , total[name])
b=input('是否修改用户资料(YES/NO):')
if b=='YES':
total[name] = input('请输入用户联系电话:')
else:
total[name] = input('请输入用户联系电话:')
elif code == 3:
name = input('请输入联系人姓名:')
if name in total:
del(total[name])
else:
print('查无此人')
elif code == 4:
break
print('|--- 感谢使用通讯录程序 ---|')