Python学习笔记(七)—字典的学习
总结内容:
1、字典的定义
2、字典的好处
3、字典的增删改查
4、字典常用方法及内置函数
5、字典的多层嵌套
6、字典的循环
7、字典小练习
1、字典的定义
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
2、字典的好处:
1、取数据方便,知道key的值就能将value的值取到
2、速度快
键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
例如:
dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
3、字典的增删改查
3.1、字典查询:
1、get方法
如果key 不存在,在取不到key的值的情况下,则显示为null
如果key的值不存在,但是设置了默认值,那么在取不到值时显示默认值:
2、[ ]方式取值
注意:如果用[]方式取值的话,如果key不存在则会报错
3.2、字典增加:
方式一:[ ]方式,在key 存在的情况下可以覆盖原字典中的值,在key不存在的情况下直接添加该值
注意:字典是无序的,所以输出的数据不一定是按有序的顺序输出
方式二:setdefault方法,在key存在的情况下不能修改原字典中的值
info.setdefault('addr','55555')
3.3、字典的修改:
使用[]方式修改字典的value值
update方式可以将两个字典进行合并操作
dict1 = {'name':'test'}
print(dict1)
dict2 = {'age':19}
dict1.update(dict2)
print(dict1) 运行结果:
{'name': 'test'}
{'name': 'test', 'age': 19}
3.4、字典的删除:
方式一:
pop方式:指定key删除
方式二:
popitem:随机删除一个key
方式三:
del :指定key来删除
方式四:
clear方式:清空字典
4、字典常用方法及内置函数:
values:输出字典中values的值
keys:输出字典所有的key的值
items:输出子典中所有的key:values值
Python内置方法:
号 |
函数及描述 |
1 |
radiansdict.clear() |
2 |
radiansdict.copy() |
3 |
radiansdict.fromkeys() |
4 |
radiansdict.get(key, default=None) |
5 |
key in dict |
6 |
radiansdict.items() |
7 |
radiansdict.keys() |
8 |
radiansdict.setdefault(key, default=None) |
9 |
radiansdict.update(dict2) |
10 |
radiansdict.values() |
11 |
pop(key[,default]) |
12 |
popitem() |
Python字典包含了以下内置函数:
序号 |
函数及描述 |
实例 |
1 |
len(dict) |
>>> dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} >>> len(dict) 3 |
2 |
str(dict) |
>>> dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} >>> str(dict) "{'Name': 'Runoob', 'Class': 'First', 'Age': 7}" |
3 |
type(variable) |
>>> dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} >>> type(dict) <class 'dict'> |
5、多层嵌套:
实例:
多次嵌套数据的查询:
多次嵌套修改数据
多次嵌套添加数据:
6、字典的循环操作
直接循环字典打印的是字段的key值:
同时取到key:values的循环方式,需要使用items方法:
注意:字典里面用in来判断的话直说判断key的值,value的值是不进行判断的
7、字典小练习
users = {
'test0':'',
'test1':'',
}
#所有的账号和密码
# username
# pwd
# cpwd
# print( '123456' in users ) #字典里面用in来判断的话,只是判断key是否存在
for i in range(3):
username = input('账号:').strip()
passwd = input('密码:').strip()
cpasswd = input('密码确定:').strip()
if username=='' or passwd=='' or cpasswd=='':
print('用户名/密码不能为空')
elif username in users:
print('用户名已经被注册!')
elif passwd!=cpasswd:
print('两次输入的密码不一致')
else:
print('恭喜,注册成功!')
# users.setdefault(username,passwd)
users[username]=passwd
break
else:
print('错误次数过多')
print(users)
Python学习笔记(七)—字典的学习的更多相关文章
- python学习笔记七——字典
4.3 字典结构 字典是Python中重要的数据类型,字典的由“键-值”对组成的集合,字典中的“值”通过“键”来引用. 4.3.1 字典的创建 字典由一系列的“键-值”(key-value)对组成,“ ...
- python3.4学习笔记(七) 学习网站博客推荐
python3.4学习笔记(七) 学习网站博客推荐 深入 Python 3http://sebug.net/paper/books/dive-into-python3/<深入 Python 3& ...
- Go语言学习笔记七: 函数
Go语言学习笔记七: 函数 Go语言有函数还有方法,神奇不.这有点像python了. 函数定义 func function_name( [parameter list] ) [return_types ...
- (转)Qt Model/View 学习笔记 (七)——Delegate类
Qt Model/View 学习笔记 (七) Delegate 类 概念 与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件.一般来讲, view负责把数据展示 给用户,也 ...
- Learning ROS for Robotics Programming Second Edition学习笔记(七) indigo PCL xtion pro live
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS forRobotics Pro ...
- Typescript 学习笔记七:泛型
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- iOS 学习笔记七 【博爱手把手教你使用2016年gitHub Mac客户端】
iOS 学习笔记七 [博爱手把手教你使用gitHub客户端] 第一步:首先下载git客户端 链接:https://desktop.github.com 第二步:fork 大神的代码[这里以我的代码为例 ...
- 【opencv学习笔记七】访问图像中的像素与图像亮度对比度调整
今天我们来看一下如何访问图像的像素,以及如何改变图像的亮度与对比度. 在之前我们先来看一下图像矩阵数据的排列方式.我们以一个简单的矩阵来说明: 对单通道图像排列如下: 对于双通道图像排列如下: 那么对 ...
- Linux学习笔记(七) 查询系统
1.查看命令 (1)man 可以使用 man 命令名称 命令查看某个命令的详细用法,其显示的内容如下: NAME:命令名称 SYNOPSIS:语法 DESCRIPTION:说明 OPTIONS:选项 ...
- go微服务框架kratos学习笔记七(kratos warden 负载均衡 balancer)
目录 go微服务框架kratos学习笔记七(kratos warden 负载均衡 balancer) demo demo server demo client 池 dao service p2c ro ...
随机推荐
- BZOJ4840 NEERC2016 Binary Code
Problem BZOJ Solution 可能是因为快要省选了,所以最近更博的频率好像高了点_(:зゝ∠)_ 每个字符串最多有两个状态,然后要满足一些依赖关系,考虑2sat.可以先把字符串的结束节点 ...
- 三、springcloud之服务调用Feign
一.背景 项目中接口调用: Httpclient Okhttp Httpurlconnection RestTemplate 微服务提供了更简单,方便的Feign 二.Feign简介 Feign是一个 ...
- python基础-实现进度条功能,for和yield实现
实现进度条功能 方法一:简单FOR实现打印进度条功能 for i in range(10): print("#",end="",flush=True) time ...
- Python版飞机大战
前面学了java用java写了飞机大战这次学完python基础后写了个python版的飞机大战,有兴趣的可以看下. 父类是飞行物类是所有对象的父类,setting里面是需要加载的图片,你可以换称自己的 ...
- No.9 selenium学习之路之CSS定位
CSS定位方式: 元素中间加“.”表示是class 1.通过ID定位 driver.find_element_by_css_selector("#ID值") 2.通过class定位 ...
- Luogu P2069 【松鼠吃果子】
推荐一波数组模拟链表的讲解 这道题呢,数组写的话不好删除(因为后面要接过来),自然想到链表 对于一个果子,我们可以维护其前驱和后继,我们不妨记与一个点相邻的上面的点为其前驱,下面的点为其后继 观察到题 ...
- 压力测试随笔之:JMeter,LoadRunner 相得益彰
做压力测试,我喜欢先写 JMeter 脚本,功能测通以后再翻译成 LoadRunner 脚本,最后用 LoadRunner 完成压测.也许我是 Java 出身吧,对 JMeter 总是有一种亲切感用着 ...
- SQL数据是否存在(是否有数据)判断,表,存储过程是否存在
判断是否存在数据 if exists( select * from Hong_PageConfig where names='name' ) Begin print '1' End else Begi ...
- Oracle学习笔记:wm_concat函数合并字段
在Oracle中使用wm_concat(column)可以实现字段的分组合并,逗号分隔. 例如,现有表temp_cwh_test: -- 创建临时表 create table temp_cwh_tes ...
- CVE-2012-0003 Microsoft Windows Media Player ‘winmm.dll’ MIDI文件解析远程代码执行漏洞 分析
[CNNVD]Microsoft Windows Media Player ‘winmm.dll’ MIDI文件解析远程代码执行漏洞(CNNVD-201201-110) Microsoft Wi ...