前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小甲鱼《零基础学习Python》课后笔记(二十五):字典——当索引不好用时1

小甲鱼《零基础学习Python》课后笔记(二十五):字典——当索引不好用时1

作者头像
小火柴棒
发布2019-01-11 15:19:36
6180
发布2019-01-11 15:19:36
举报
文章被收录于专栏:石开之旅石开之旅

测试题 0.当你听到小伙伴在讨论“映射”、“哈希”、“散列”或者“关系数列”的时候,事实上他们就是在讨论什么呢? 事实上是在讨论字典,字典是python中的映射类型,而列表,元组是序列类型。

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

代码语言:javascript
复制
>>> dict1 = {'F':70, 'C':67, 'h':104, 'i':105, 's':115}  
>>> dict1['C']  
67  

2.用方括号(“[]”)括起来的数据我们叫列表,那么用大括号(“{}”)括起来的数据我们就叫字典,对吗? 不是,如下: ```python >>> dict2 = {'A', 'l', 'l', 'e', 'n'} >>> dict2 {'e', 'l', 'A', 'n'} >>> type(dict2)

代码语言:javascript
复制
>>> 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}) 

一样的,都是在创建字典

代码语言:javascript
复制
>>> a  
{'one': 1, 'two': 2, 'three': 3}  
>>> b  
{'one': 1, 'two': 2, 'three': 3}  
>>> c  
{'one': 1, 'two': 2, 'three': 3}  
>>> d  
{'two': 2, 'one': 1, 'three': 3}  
>>> e  
{'three': 3, 'one': 1, 'two': 2}  

5.如图,你可以推测出打了马赛克部分的代码吗?

5题图
5题图

打了马赛克部分的是:data.split(’,’)

代码语言:javascript
复制
data = "1000,小甲鱼,男"  
MyDict = {}  
  
(MyDict['id'], MyDict['name'], MyDict['sex']) = data.split(',')  
	  
print("ID:   " + MyDict['id'])  
print("Name: " + MyDict['name'])  
print("Sex:  " + MyDict['sex']) 

动动手

0.尝试利用字典的特性编写一个通讯录程序吧,功能如图:

0题图
0题图

程序如下:

代码语言:javascript
复制
print('|---欢迎进入通讯录程序---|')
print('|---1:查询联系人资料---|')
print('|---2:插入新的联系人---|')
print('|---3:删除已有联系人---|')
print('|---4:退出通讯录程序---|')	
dict1 = {}
while True:
	print()
	count = int(input('请输入相关的指令代码:'))
	if count == 1:
		name = input('请输入联系人姓名:')
		if name in dict1:
			print(name + ':' + dict1[name])
			continue
		else:
			print('未查找到此联系人')
			continue
	elif count == 2:
		name = input('请输入联系人姓名:')
		if name in dict1:
			print('您输入的姓名在通讯录中已存在 -->>' + name + ':' + dict1[name])
			x = input('是否修改用户资料(YES/NO):')
			if x == 'YES':
				phone = input('请输入用户联系电话:')
				dict1[name] = phone
			else:
				continue
		else:
			phone = input('请输入用户联系电话:')
			dict1[name] = phone
			print('插入新的联系人' + name + '成功!')
			continue
	elif count == 3:
		name = input('请输入联系人姓名:')
		if name in dict1:
			x = input('是否删除已有联系人(YES/NO):')
			if x == 'YES':
				del(dict1[name])
				print('删除联系人' + name +'成功')
				continue
			else:
				print('未删除联系人' +name)
				continue
		else:
			print('未查找到此联系人')
	else:
		print('欢迎您的下次使用!')
		break

测试结果如下:

代码语言:javascript
复制
|---欢迎进入通讯录程序---|
|---1:查询联系人资料---|
|---2:插入新的联系人---|
|---3:删除已有联系人---|
|---4:退出通讯录程序---|

请输入相关的指令代码:2
请输入联系人姓名:sdz
请输入用户联系电话:2323
插入新的联系人sdz成功!

请输入相关的指令代码:2
请输入联系人姓名:dragon
请输入用户联系电话:3333
插入新的联系人dragon成功!

请输入相关的指令代码:2
请输入联系人姓名:allen
请输入用户联系电话:3344
插入新的联系人allen成功!

请输入相关的指令代码:1
请输入联系人姓名:sdz
sdz:2323

请输入相关的指令代码:2
请输入联系人姓名:sdz
您输入的姓名在通讯录中已存在 -->>sdz:2323
是否修改用户资料(YES/NO):YES
请输入用户联系电话:3444

请输入相关的指令代码:2
请输入联系人姓名:sdz
您输入的姓名在通讯录中已存在 -->>sdz:3444
是否修改用户资料(YES/NO):NO

请输入相关的指令代码:3
请输入联系人姓名:sdz
是否删除已有联系人(YES/NO):YES
删除联系人sdz成功

请输入相关的指令代码:3
请输入联系人姓名:dragon
是否删除已有联系人(YES/NO):NO
未删除联系人dragon

请输入相关的指令代码:4
欢迎您的下次使用!
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年08月11日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档