Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >小甲鱼《零基础学习Python》课后笔记(二十五):字典——当索引不好用时1

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

作者头像
小火柴棒
发布于 2019-01-11 07:19:36
发布于 2019-01-11 07:19:36
66700
代码可运行
举报
文章被收录于专栏:石开之旅石开之旅
运行总次数:0
代码可运行

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> 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
代码运行次数:0
运行
AI代码解释
复制
>>> 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
代码运行次数:0
运行
AI代码解释
复制
>>> 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.如图,你可以推测出打了马赛克部分的代码吗?

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

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

动动手

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

程序如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
|---欢迎进入通讯录程序---|
|---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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
第二十五天 多线程-常用方法&线程池【悟空教程】
System.out.println(getName() + " ==== " + i );
Java帮帮
2018/07/26
3910
第二十五天 多线程-常用方法&线程池【悟空教程】
day18-多线程&线程同步&死锁
在操作系统中,安装了多个程序,并发指的是在一段时间内宏观上有多个程序同时运行,这在单 CPU 系统中,每一时刻只能有一道程序执行,即微观上这些程序是分时的交替运行,只不过是给人的感觉是同时运行,那是因为分时交替运行的时间是非常短的。
张哥编程
2024/12/13
930
菜鸟说: 线程那点事(java篇)
多线程编程除了在现实工作中经常会被应用到,而且在面试的时候不少的面试官也喜欢问这些多线程的东西来作为他们考量一个面试者基础水平的标准.可见它存在的实用性,那么我觉得作为一个程序员学习者来说,当然得好好学一学,本随笔将会从我自己的角度讲一下我个人对多线程的理解以及应用。
用户7886150
2020/12/11
3850
控制线程
线程状态转换 线程控制基本方法 方法 功能 isAlive() 判断线程是否终止 getpriority() 获得线程的优先级数值 setpriority() 设置线程优先级数值 Thread.sle
mathor
2018/07/04
3640
Java 线程基础
简言之,进程可视为一个正在运行的程序。它是系统运行程序的基本单位,因此进程是动态的。进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动。进程是操作系统进行资源分配的基本单位。
静默虚空
2019/12/26
4890
Java 线程基础
【day17】多线程基础
进程是在内存中执行的应用程序,而线程是进程中最小的执行单元,负责当前进程中程序的运行。一个进程中至少有一个线程,多个线程的应用程序称为多线程程序。
程序员波特
2024/12/26
900
【day17】多线程基础
Java:认识多线程
概述 什么是线程??? 进程的概念:进程是指可执行程序并存放在计算机存储器的一个指令序列,他是一个动态执行的过程。 进程的概念和特征_C语言中文网 (biancheng.net) 线程是比进程还要小的运行单位,一个进程含多个线程 Thread类和Runnable接口介绍 线程创建 创建一个Thread类,或者一个Thread子类的对象 创建一个实现Runnable接口的类的对象 Thread类 Thread是一个线程类,位于java.lang包下 Thread类的常用方法 Runnable接口 只有
Breeze.
2022/06/05
2350
Java:认识多线程
Java之多线程-------入门
是指从软件或者硬件上实现多个线程并发执行的技术。 具有多线程能力的计算机因有硬件支持而能够在同一时间执行多个线程,提升性能。
楠羽
2022/11/18
3790
Java之多线程-------入门
Java多线程
1.新建:程序使用new创建线程后,就是新建状态,jvm会为他分配内存,并初始化成员变量的值
用户11010370
2024/03/08
1290
十五、多线程【黑马JavaSE笔记】
假如计算机只有一个CPU,那么CPU在某一个时刻只能执行一条指令,线程只有得到CPU时间片,也就是使用权,才可以执行指令。所以说多线程程序的执行是有随机性,因为谁抢到CPU的使用权是不一定的
啵啵鱼
2022/11/23
2920
十五、多线程【黑马JavaSE笔记】
Java线程知识点总结
简言之,进程可视为一个正在运行的程序。它是系统运行程序的基本单位,因此进程是动态的。进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动。进程是操作系统进行资源分配的基本单位。
鱼找水需要时间
2023/03/09
3060
Java线程知识点总结
Java多线程(一篇从0讲透)
进程:是指一个内存中运行的程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程
不吃紫菜
2023/04/02
3960
Java多线程(一篇从0讲透)
深入理解多线程
多线程是java中比较重要的一部分内容,使用多线程有许多的优点: - 提高应用程序的响应。对图形化界面更有意义,可增强用户体验。 - 程序需要实现一些需要等待的任务时,可以提高计算机系统CPU的利用率 - 改善程序结构。将既长又复杂的进程分为多个线程,独立运行,利于理解和修改
栋先生
2018/09/29
7240
深入理解多线程
多线程(一):创建线程和线程的常用方法
进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运行。
全栈程序员站长
2022/08/11
1.1K0
多线程(一):创建线程和线程的常用方法
java线程详解(史上最全)
根据本人多年从业以及学习经验,录制了一套最新的Java精讲视频教程,如果你现在也在学习Java,在入门学习Java的过程当中缺乏系统的学习教程,你可以加QQ群654631948领取下学习资料,面试题,开发工具等,群里有资深java老师做答疑,每天也会有基础部分及架构的直播课,也可以加我的微信renlliang2013做深入沟通,只要是真心想学习Java的人都欢迎。
全栈程序员站长
2022/09/08
2740
java线程详解(史上最全)
Java多线程技能
本文介绍了线程的用法,包括线程的创建、启动、挂起、结束等操作,并讲解了线程的共享资源、线程的同步、线程的中断等概念。同时,本文还介绍了线程的优先级、线程的状态、线程的同步、线程的通信、线程的调度、线程的同步等问题。
Java后端工程师
2017/12/13
1.1K0
Java 线程的六种状态
进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。
Jacob丶
2020/08/05
5440
Java 线程的六种状态
Java多线程学习(一)Java多线程入门
Java面试通关手册(Java学习指南,欢迎Star,会一直完善下去,欢迎建议和指导):https://github.com/Snailclimb/Java_Guide
用户2164320
2018/06/17
2.2K0
多线程基础
例子:单核CUP执行两件事,串行执行时间快,还是多线程执行快? 答:串行执行快。因为单核,执行的总时间一样,而多线程增加了线程切换的时间。
冬天vs不冷
2025/01/20
1000
多线程基础
Java多线程Thread VS Runnable详解
本文讲述如何使用Java多线程技术实现一个安全的卖票程序,通过分析线程的生命周期、线程的分类以及线程安全问题,结合实际案例讲解了如何在实际项目中应用多线程技术。
Java后端工程师
2017/12/15
1.1K0
相关推荐
第二十五天 多线程-常用方法&线程池【悟空教程】
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验