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),通过散列 ...
随机推荐
- Spring错误——Spring 单元测试——Test class should have exactly one public constructor
背景:Spring 构建单元测试 错误 java.lang.Exception: Test class should have exactly one public constructor at or ...
- Python入门 io篇
简单demo with open('d:/pydemo/pythonStart/fun1.py', 'r') as f: #print(f.read()) while True: line = f.r ...
- $set()的正确使用方式
vue给对象新增属性,并触发视图更新 如下代码:给student对象新增age属性 data () { return { student: { name: '', sex: '' } } } 众所周知 ...
- phpmyadmin-您可能正在上传很大的文件,请参考文档来寻找解决方法
phpmyadmin-您可能正在上传很大的文件,请参考文档来寻找解决方法 实这个很简单的只要更改php.ini里三个配置即可.(见下面加粗部分,改成你自己的需求即可) ; Maximum allo ...
- script利用src引用外部js文件,如果内部嵌套了js代码呢
<script src='test.js' defer async> var a = 5; </script> 这个时候 var a = 5;会被忽略.
- 图论++【洛谷p1744】特价采购商品&&【一本通1342】最短路径问题
(虽然题面不是很一样,但是其实是一个题qwq) [传送门] 算法标签: 利用Floyed的o(n3)算法: (讲白了就是暴算qwq) 从任意一条单边路径开始.所有两点之间的距离是边的权,或者无穷大,如 ...
- ES6中export与export default的区别
首先要知道export,import ,export default是什么 ES6模块主要有两个功能:export和importexport用于对外输出本模块(一个文件可以理解为一个模块)变量的接口i ...
- REACT map dictionary
Object.entries(obj).map(([key, value]) => ( console.log(key); console.log(value); ))
- js 前端 table 导出 excel
园子,github,stackoverflow 关于前端下载的文章不少 园子里大部分都是 利用ActiveXObject对象来实现,可他有个缺点安全等级,还有必须安装excel…… github,st ...
- Module(模块)
1.每个Angular至少有一个根Module 2.Module时一个带有@NgModule装饰符的类 3.最简单的Module import { NgModule } from '@angular/ ...