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 ...
随机推荐
- 企业日志大数据分析系统ELK+KAFKA实现【转】
背景: 最近线上上了ELK,但是只用了一台Redis在中间作为消息队列,以减轻前端es集群的压力,Redis的集群解决方案暂时没有接触过,并且Redis作为消息队列并不是它的强项:所以最近将Redis ...
- 【bzoj3065】: 带插入区间K小值 详解——替罪羊套函数式线段树
不得不说,做过最爽的树套树———— 由于有了区间操作,我们很容易把区间看成一棵平衡树,对他进行插入,那么外面一层就是平衡树了,这就与我们之前所见到的不同了.我们之前所见到的大多数是线段树套平衡树而此题 ...
- php环境搭建 (window环境下 eclipse+Wampserver)
看了好多的环境搭建感觉好复杂呀,自己搞了一下简单的可以用了 php的手册 http://www.php.net/manual/zh/ 一,下载 1,下载eclipse http://www.ecl ...
- echarts 移动端地图数据可视化开发教程
如上效果图: 以下未代码: <!doctype html> <html lang="en"> <head> <meta charset ...
- NOIP2018初赛 解题报告(C++普及)
第24届全国青少年信息学奥林匹克联赛初赛 普及组C++语言试题 竞赛时间:2018 年 10 月 13 日 14:30~16:30 选手注意: 1.试题纸共有 7 页,答题纸共有 2 页,满分 100 ...
- VS 2015 序列号/密钥/企业版/专业版
专业版:HMGNV-WCYXV-X7G9W-YCX63-B98R2企业版:HM6NR-QXX7C-DFW2Y-8B82K-WTYJV
- 多线程-TaskExecutor-使用Demo
BasicExecute.java package com.jef.executeTest; public abstract class BasicExecute extends Thread { @ ...
- day8--by a gentlement man
1.着装得体(不要国产.不要Jack&Johnson.selected),人都是势利眼,高素质和低素质人的区别,高素质是心里明白歧视你,但是不说:低素质是直接表示出来:lower,屌丝 ...
- Web前端开发最佳实践(7):使用合理的技术方案来构建小图标
大家都对网站上使用的小图标肯定都不陌生,这些小图标作为网站内容的点缀,增加了网站的美观度,提高了用户体验,可是你有没有看过在这些网站中使用的图标都是用什么技术实现的?虽然大部分网站还是使用普通的图片实 ...
- box-sizing定义的盒模型之间的区别