Python全栈之路----数据类型—字典
字典:可变,一种key-value的数据类型
info = { 'stu1101' : 'TengLan Wu' , 'stu1102' : 'LongZe Luola' , 'stu1103' : ' XiaoZe Maliya' }
1.特点:key-value结构;key必须可hash(被hash值不变),且必须唯一、必须为不可变类型;无序的(因为无索引,通过key查询);查找速度快
2.基本操作:创建,添加,查找,修改,删除,清空
>>> info = {
... '龙婷':[24,'design','UI',2333],
...'shanshan':[25,'PR','wild model',13445222]
... } #创建,‘:’前为key,后为value,value可为列表
>>> info
{'龙婷': [24, 'design', 'UI', 2333], 'shanshan': [25, 'PR', 'wild model', 13445222]}
>>> info['龙婷'] #查找时,字典名[key值],若不存在,报错
[24, 'design', 'UI', 2333]
>>> info['龙婷'][1] = '设计部' #value为列表,修改和列表类似
>>> info
{'龙婷': [24, '设计部', 'UI', 2333], 'shanshan': [25, 'PR', 'wild model', 13445222]}
>>> 'shanshan' in info #判断'shanshan'是否在列表里面
True
>>> info.get('shanshan') #获取'shanshan'的字典值
[25, 'PR', 'wild model', 13445222]
>>> info['alex'] #获取'alex'的字典值,如果不存在,就报错
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'alex'
>>> print(info.get('alex')) #获取'alex'的字典值,不存在返回为空
None
>>> info.pop('shanshan') #删除'shanshan'及其对应的value值,返回'shanshan'对应的value值
[25, 'PR', 'wild model', 13445222]
>>> info
{'龙婷': [24, 'design', 'UI', 2333]}
>>> info.popitem() #随机删除,因为字典本身是无须的
('龙婷', [24, 'design', 'UI', 2333])
>>> info
{}
>>> info = {'龙婷': [24, 'design', 'UI', 2333], 'shanshan': [25, 'PR', 'wild model', 13445222]}
>>> info['name'] = 'alex' #添加 key 为'name',对应value为'alex'
>>> info
{'龙婷': [24, 'design', 'UI', 2333], 'shanshan': [25, 'PR', 'wild model', 13445222], 'name': 'alex'}
>>> del info['name'] #删除'name'及其对应的value
>>> info
{'龙婷': [24, 'design', 'UI', 2333], 'shanshan': [25, 'PR', 'wild model', 13445222]}
3.多级字典的嵌套
>>> catelog = { 'A':{'a':['','']},'B':{'b':['','']},'C':{'c':['','']}} #创建一个嵌套列表
>>> catelog['B']['b'][1] += '***' #修改
>>> catelog
{'A': {'a': ['', '']}, 'B': {'b': ['', '4***']}, 'C': {'c': ['', '']}}
4.字典的用法:.keys() .values() .items() .update() .setdefault() .copy()->用法和列表完全一致
>>> info = {'alex':[24,'IT'],'rain':[24,'HR'],'jack':22}
>>> info
{'alex': [24, 'IT'], 'rain': [24, 'HR'], 'jack': 22}
>>> info.keys() #打印所有的key值
dict_keys(['alex', 'rain', 'jack'])
>>> info.values() #打印所有的value值
dict_values([[24, 'IT'], [24, 'HR'], 22])
>>> info.items() #将字典里的元素打印成小元组
dict_items([('alex', [24, 'IT']), ('rain', [24, 'HR']), ('jack', 22)])
>>> info
{'alex': [24, 'IT'], 'rain': [24, 'HR'], 'jack': 22}
>>> dic2 = {1:2,2:3,'jack':[22,'Jack Ma','Alibaba CEO']}
>>> info.update(dic2) #info和update合并,key值相同的被覆盖
>>> info
{'alex': [24, 'IT'], 'rain': [24, 'HR'], 'jack': [22, 'Jack Ma', 'Alibaba CEO'], 1: 2, 2: 3}
>>> info.setdefault(2,'new 2')
3
>>> info
{'alex': [24, 'IT'], 'rain': [24, 'HR'], 'jack': [22, 'Jack Ma', 'Alibaba CEO'], 1: 2, 2: 3}
>>> info.setdefault('test','new 2') #有key就获取对应value值,没有就创建
'new 2'
>>> info
{'alex': [24, 'IT'], 'rain': [24, 'HR'], 'jack': [22, 'Jack Ma', 'Alibaba CEO'], 1: 2, 2: 3, 'test': 'new 2'}
>>> info.fromkeys(['A','B','C']) #生成字典,给key批量赋值
{'A': None, 'B': None, 'C': None}
>>> info.fromkeys(['A','B','C'],'alex') #生成字典,给key批量赋值
{'A': 'alex', 'B': 'alex', 'C': 'alex'}
>>> info
{'alex': [24, 'IT'], 'rain': [24, 'HR'], 'jack': [22, 'Jack Ma', 'Alibaba CEO'], 1: 2, 2: 3, 'test': 'new 2'}
5.字典循环
>>> for k in info:
... print(k) #打印key
...
alex
rain
jack
1
2
test
>>> for k in info:
... print(k,info[k]) #打印key和对应的value
...
alex [24, 'IT']
rain [24, 'HR']
jack [22, 'Jack Ma', 'Alibaba CEO']
1 2
2 3
test new 2
>>> for k,v in info.items():
... print(k,v) #打印key和value,但是比较低效(字典本身查询速度很快,此种方法将字典转化成了列表再循环,浪费时间),不建议使用
...
alex [24, 'IT']
rain [24, 'HR']
jack [22, 'Jack Ma', 'Alibaba CEO']
1 2
2 3
test new 2
Python全栈之路----数据类型—字典的更多相关文章
- python全栈开发笔记---------数据类型---字典方法
def clear(self) 清空字典里所有元素 # info = { # "k1":18, # "k2":True, # "k3":[ ...
- python全栈开发笔记---------数据类型-----字典dict
字典 #dict #1.基本结构 info= { "k1" : "v1", #键值对 "k2" : "v2" } ### ...
- Python全栈之路----数据类型—列表
1.列表是一个数据的集合,集合内可以放任何数据类型,可对集合进行方便的增删改查操作.列表里面的数可以重复. L1 = [ ] #定义空列表 L2 = [ 'a' , 'b' , 'c' , 'd' ] ...
- Python全栈之路---数据类型—字符串
字符串:有序的字符的集合,用于存储和表示基本的文本信息,一对单.双.或三引号中间包含的内容称之为字符串 1.特性:有序,不可变(开辟新地址存储字符串,python解释器会定期清空不用了的已存储的) & ...
- Python全栈之路----数据类型—元组类型
元组类型:有序,不可变的,又叫只读列表 names = ("alex","jack","eric") 1.元组本身不可变,但如果元组中有可 ...
- Python全栈之路----目录
Module1 Python基本语法 Python全栈之路----编程基本情况介绍 Python全栈之路----常用数据类型--集合 Module2 数据类型.字符编码.文件操作 Python全栈之路 ...
- python 全栈之路
目录 Python 全栈之路 一. Python 1. Python基础知识部分 2. Python -函数 3. Python - 模块 4. Python - 面对对象 5. Python - 文 ...
- Python全栈之路目录结构
基础 1.Python全栈之路-----基础篇 2.Python全栈之路---运算符与基本的数据结构 3.Python全栈之路3--set集合--三元运算--深浅拷贝--初识函数 4.Python全栈 ...
- Python全栈之路----常用模块----hashlib加密模块
加密算法介绍 HASH Python全栈之路----hash函数 Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列 ...
随机推荐
- 【Alpha】Scrum Meeting 6
目录 前言 任务分配 燃尽图 会议照片 签入记录 困难 前言 第6次会议在4月10日22:00由PM在一公寓三楼召开. 交流确认了任务进度,对下一阶段任务进行分配.时长15min. 任务分配 姓名 当 ...
- git将本地项目上传码云
1.首先在码云新建项目. 2.使用git bash工具,进入本地项目所在的文件夹. 3.执行命令 git init,初始化本地git仓库 4.执行命令 git remote add [short-na ...
- redux-thunk的理解
问题:1.redux-thunk要解决什么问题? 要解决异步请求问题,Action发出以后,Reducer立即算出State,这叫做同步:Action发出以后,过一段时间再执行 Reducer,这就叫 ...
- 第十届蓝桥杯2019年C/C++ 大学A组省赛试题
2019年蓝桥杯第十届软件类省赛 C/C++ 大 学 A 组 试题 A: 平方和 本题总分:5 分 [问题描述] 小明对数位中含有 2.0.1.9 的数字很感兴趣,在 1 到 40 中这样的数包括 1 ...
- Matlab Code for Visualize the Tracking Results of OTB100 dataset
Matlab Code for Visualize the Tracking Results of OTB100 dataset 2018-11-12 17:06:21 %把所有tracker的结果画 ...
- 《深入理解Nginx:模块开发与架构解析》读书笔记
1.nginx的特点:快.扩展性强.可靠性强.内存低消耗.支持高并发.热部署.开源免费 2.nginx由master进程来管理多个(CPU数)worker进程 3.配置按功能分,有4类: 1)用于调试 ...
- gis和threejs的学习资料
*********************************** 基础知识/名词 瓦片/矢量瓦片GeoJson - 绘制GeoJson看数据, geojson规范, 中文版 ********** ...
- sevrlet进行用户名密码校验
在eclipse中建立了web项目,实现注册和登录还有在个人中心显示用户名密码 注册功能 源码如下 package com.sevlet.demo; import java.io.IOExceptio ...
- 【转载】koa相关知识(来自官网)
什么是Koa? koa 是由 Express 原班人马打造的,致力于成为一个更小.更富有表现力.更健壮的 Web 框架.使用 koa 编写 web 应用,通过组合不同的 generator,可以免除重 ...
- vue-router beforeEach死循环
vue中页面跳墙处理 页面跳墙中使用 vue-router中的 beforeEach的死循环问题 问题展现 import Router from 'vue-router' const router = ...