[课后作业] 第025讲:字典:当索引不好用时 | 课后测试题

0.你听说小伙伴们再讨论“映射”、“哈希”、“散列”或者“关系数组”的时候,事实上他们在讨论什么呢?

答:字典

1.尝试一下将数据(‘F’:70,“C”:67,“H”:104,“I”:105,“S”:115)创建为一个字典并访问键“C”对应的值是?

a = {'F':70,'C':67,'h':104,'i':105,'s':115}
a
{'F': 70, 'C': 67, 'h': 104, 'i': 105, 's': 115}

d['C']
67
d = dict(zip(['F','C','h','i','s'],[70,67,104,105,115]))
d
{'F': 70, 'C': 67, 'h': 104, 'i': 105, 's': 115}

d['C']
67
d = dict(F=70 ,C=67 ,h=104, i=105,s=115)
d
{'F': 70, 'C': 67, 'h': 104, 'i': 105, 's': 115}

d['C']
67
d = dict.fromkeys("FChis",10)
d.update(F=70,C=67,h=104,i=105,s=115)
d
{'F': 70, 'C': 67, 'h': 104, 'i': 105, 's': 115}

d['C']
67

2.用方括号(“[]”)括起来的数据我们叫列表,那么使用大括号(“{}”)括起来的数据我们就叫字典,对吗?

答:不对。使用大括号(“{}”)括起来的可能是集合set。

3.你如何理解有些东西字典做得到,但“万能的”列表却难以实现呢?

答: 我们通过列表达到元素之间的一一对应关系,是通过两者索引值联系起来。而字典内置自带映射关系的键值对,相较于列表而言效率高。

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"]) 

Id:   1000
Name: 小甲鱼
sex:  男

6.动动手:

0.尝试利用字典特性,写一个通讯录

print("""|--- 欢迎进入通讯录程序 ---|
|--- 1:查询联系人资料  ---|
|--- 2:插入新的联系人  ---|
|--- 3:删除已有联系人  ---|
|--- 4:退出通讯录程序  ---|""")
address = {}
 
while 1:
    command = int(input("\n请输入相关的指令代码:"))
    
    if command == 1:
        name = input("请输入联系人姓名:")
        if name in address:
            print(name + ' : ' + address[name])
        else:
            print("此人不是通讯录中的好友!")
    
    if command == 2:
        name = input("请输入联系人姓名:")
        if name in address:
            print("您输入的姓名在通讯录中已存在 -->> ", name + ":" + address[name])
            if input("是否修改用户资料(YES/NO):") == "YES":
                address[name] = input("请输入用户联系电话:")
        else:
            address[name] = input("请输入用户联系电话:")
    
    if command == 3:
        name = input("请输入联系人姓名:")
        if name in address:
            if input("是否删除用户资料(YES/NO):") == "YES":
                del (address[name])
            else:
                break
        else:
            print("此人不是通讯录中的好友!")         
    
    if command == 4:
        break
print('|--- 感谢使用通讯录程序 ---|')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值