Python 基础 4-1 字典入门
引言
字典 是Python 内置的一种数据结构,它便于语义化表达一些结构数据,字典是开发中常用的一种数据结构
字典介绍
- 字典使用花括号
{}或dict来创建,字典是可以嵌套使用的 - 字典是成对出现的,字典以键(key)值(value)对形式体现
- 键与值之间用冒号
:分隔,每个键值对之间用逗号,分隔开 - 字典的
key是唯一的,而value可以重复出现 - 字典的
key不使用中文或其他字符,这是业内约定俗成的做法
创建字典
字典可以使用花括号
{}或dict函数来创建
1. 使用花括号 {} 创建字典
注意:字典每个键值对之间要用逗号 , 分隔开
emp = {'name':'张三' , 'age':22 , 'sex':'男'}
print(emp)
# 运行结果:{'name': '张三','age': 22, 'sex': '男'}
# 字典打印时会将花括号也打印出来
print(type(emp))
# 运行结果:<class 'dict'>
# 从以上打印类型可以看出变量属于 dict 字典类型
2-1. 使用 dict 函数创建字典
dict 是 Python 的内置函数,使用该函数创建列表时,key 不需要加引号
dict 函数的效果和以上示例中的运行效果是相同的
emp = dict(name='张三' , age=22,sex='男')
print(emp)
# 运行结果:{'name': '张三', 'age': 22, 'sex': '男'}
2-2. fromkeys 方法
fromkeys方法与dict函数搭配使用,它允许使用序列来创建字典 key
emp = dict.fromkeys(['name' , 'age' , 'sex'])
print(emp)
# 运行结果:{'name': None, 'age': None, 'sex': None}
如果不为 fromkeys 方法指定默认值,默认情况下返回 None
如果需要改变这种情况,只需在 fromkeys 方法第二个参数传入默认值即可,如下示例
emp = dict.fromkeys(['name' , 'age' , 'sex'] , 'N/A')
print(emp)
# 运行结果:{'name': 'N/A', 'age': 'N/A', 'sex': 'N/A'}
默认值 N/A 不是必须的,可按照项目实际需求传入对应值,或不传入值
列表取值
字典取值有两种方式
1. 方式一
在字典变量后面使用方括号传入字典的 key 进行取值
这种方法有一个弊端:如果字典中不存在 key ,会报 KeyError 错误
emp = {'name':'张三' , 'age':22 , 'sex':'男'}
print(emp['name'])
# 运行结果:张三
2. 方式二
使用字典
get方法取值
如果不存在 key ,返回 None 或自己指定的值,例如 N/A,以下为示例代码
emp = {'name':'张三' , 'age':22 , 'sex':'男'}
v = emp.get('name')
print(v)
# 运行结果:张三
emp = {'name':'张三' , 'age':22 , 'sex':'男'}
v = emp.get('dept','其他部门')
print(v)
# 运行结果:其他部门
字典的写操作
字典增删改查操作
更新
Python 字典秉承:“有则更新,无则新增”原则
1. 更新字典 Value
emp = {'name':'张三' , 'age':22 , 'sex':'男' , 'dept':'研发部'}
emp['dept'] = '推广部'
print(emp)
# 运行结果:{'name': '张三', 'age': 22, 'sex': '男', 'dept': '推广部'}
2. 批量更新
使用
update()方法批量更新字典,在该方法内传入对应对应的 key 、value
emp = {'name':'张三' , 'age':22 , 'sex':'男' , 'dept':'研发部'}
emp.update(age=18 , dept='推广部')
print(emp)
# 运行结果:{'name': '张三', 'age': 18, 'sex': '男', 'dept': '推广部'}
新增
列表的新增操作和更新操作基本相同,Python 字典秉承:“有则更新,无则新增”原则
当字典存在对应的 key 时执行更新,当字典不存在对应的 key 时执行新增
1. 新增操作
emp = {'name': '张三', 'age': 22, 'sex': '男', 'dept': '研发部'}
emp['job'] = '销售'
print(emp)
# 运行结果:{'name': '张三', 'age': 22, 'sex': '男', 'dept': '研发部', 'job': '销售'}
2. 批量操作
emp = {'name': '张三', 'age': 22, 'sex': '男', 'dept': '研发部'}
emp.update(dept='推广部' , job='推广员')
print(emp)
# 运行结果:{'name': '张三', 'age': 22, 'sex': '男', 'dept': '推广部', 'job': '推广员'}
删除
1. 使用 pop() 方法删除
该方法删除字典给定的键及对应的值
pop()可返回值,返回值为被删除的值
emp = {'name': '张三', 'age': 22, 'sex': '男', 'dept': '研发部'}
dept = emp.pop('dept')
print(emp)
# 运行结果:{'name': '张三', 'age': 22, 'sex': '男'}
print(dept)
# 运行结果:研发部
2. 使用 popitems() 删除字典最后一个 kv
popitems() 返回的是一个元组
emp = {'name': '张三', 'age': 22, 'sex': '男', 'dept': '研发部'}
kv = emp.popitem()
print(emp)
# {'name': '张三', 'age': 22, 'sex': '男'}
print(kv)
# 运行结果:('dept', '研发部')
3. 清空列表 clear()
emp = {'name': '张三', 'age': 22, 'sex': '男', 'dept': '研发部'}
emp.clear()
print(emp)
# 运行结果:{}
Python 基础 4-1 字典入门的更多相关文章
- 『Python基础-10』字典
# 『Python基础-10』字典 目录: 1.字典基本概念 2.字典键(key)的特性 3.字典的创建 4-7.字典的增删改查 8.遍历字典 1. 字典的基本概念 字典一种key - value 的 ...
- Python基础知识(五)------字典
Python基础知识(四)------字典 字典 一丶什么是字典 dict关键字 , 以 {} 表示, 以key:value形式保存数据 ,每个逗号分隔 键: 必须是可哈希,(不可变的数据类型 ...
- Python基础 小白[7天]入门笔记
笔记来源 Day-1 基础知识(注释.输入.输出.循环.数据类型.随机数) #-*- codeing = utf-8 -*- #@Time : 2020/7/11 11:38 #@Author : H ...
- Python基础数据类型之字典
基础数据类型之字典 ps:数据类型划分:可变数据类型和不可变数据类型. 不可变数据类型:元组(tupe).布尔值(bool).整数型(int).字符串(str).不可变数据类型也称为可哈希. 可变 ...
- python基础教程1:入门基础知识
写在系列前,一点感悟 没有梳理总结的知识毫无价值,只有系统地认真梳理了才能形成自己的知识框架,否则总是陷入断片儿似的学习-遗忘循环中. 学习方法真的比刻苦"傻学"重要多了,而最重要 ...
- Python 基础教程 —— 网络爬虫入门篇
前言 Python 是一种解释型.面向对象.动态数据类型的高级程序设计语言,它由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年.自面世以后,Pytho ...
- Python - 基础数据类型 dict 字典
字典简介 字典在 Python 里面是非常重要的数据类型,而且很常用 字典是以关键字(键)为索引,关键字(键)可以是任意不可变类型 字典由键和对应值成对组成,字典中所有的键值对放在 { } 中间,每一 ...
- Python基础学习Day5 字典的增、删、改、查的用法 分别赋值
一.字典的介绍 字典:字典是Python的基础数据类型之一:字典可以存储大量数据,关系型数据. 同样是Python中唯一的映射类数据类型. 数据类型的分类: 可变的数据类 ...
- Python 基础学习之字典
1.基础代码 ##第六章 字典学习 test={'} print(test['a']) print(test['b']) 返回结果为: black123 2.基础知识: Python中的字典是一系列键 ...
- python3速查参考- python基础 4 -> 元组 + 字典 + 字符串 的学习
元组 元组:特点就是内容不可变,算只读的列表,可以被查询,不能被修改 a = 2, print(a) print(type(a)) b = ('a','b','c') print(b[1]) 运行结果 ...
随机推荐
- 钉钉机器人SDK 封装预警消息发送工具
1 群机器人 (1) 引言 钉钉聊天群内支持的群机器人, 类似QQ 群机器人, 可以发天气, 讲笑话那样; 钉钉群机器人支持自定义机器人, 允许开发者管理机器人做预警消息通知; ...
- Vue-基础(二)
一,Vue中的组件化开发: Vue中的组件也就是Vue实例 组件类型: 通用组件(例如,表单,弹窗,布局类等) 业务组件(抽奖,机器分类) 页面组件(单页面开发程序的每个页面都是一个组件) 组件开发三 ...
- wpf 查找控件
public List<T> GetChildObjects<T>(DependencyObject obj, Type typename) where T : Framewo ...
- 三、Redis的配置文件和多数据库用途
1.使用文件 # 使用配置文件启动 redis-server ./redis.conf # 带配置文件启动 且指定某几个配置 配置名称前加 -- redis-server ./redis.conf - ...
- Django Rest框架 流程详解
什么是Restful REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移” REST从资源的角度类审 ...
- javax.net.ssl.SSLKeyException: RSA premaster secret error
环境jdk1.7, 调用第三方接口时,出现javax.net.ssl.SSLKeyException: RSA premaster secret error错误,解决方案,将jre/lib/ext所有 ...
- delphi 删除文件夹里面的所有文件
1.新增一个函数 function TForm1.DelDirAll(aDir: string): Boolean;varvSearch: TSearchRec;vRet: integer;vKey: ...
- Windows10 通用快捷键命令
总想着甩掉鼠标,来一种只用键盘的各种行云流水般的快捷操作,在网上各个论坛,博客,搜索引擎,最后终于记录整理了出来! 为了尝试新的命令提示符下,只需 打开开始菜单,然后键入cmd并回车. 按Ct ...
- 分布式存储Ceph之PG状态详解
https://www.jianshu.com/p/36c2d5682d87 1. PG介绍 继上次分享的<Ceph介绍及原理架构分享>,这次主要来分享Ceph中的PG各种状态详解,PG是 ...
- hdu 4352 XHXJ's LIS (数位dp+状态压缩)
Description #define xhxj (Xin Hang senior sister(学姐)) If you do not know xhxj, then carefully readin ...