字典:可变,一种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全栈之路----数据类型—字典的更多相关文章

  1. python全栈开发笔记---------数据类型---字典方法

    def clear(self) 清空字典里所有元素 # info = { # "k1":18, # "k2":True, # "k3":[ ...

  2. python全栈开发笔记---------数据类型-----字典dict

    字典 #dict #1.基本结构 info= { "k1" : "v1", #键值对 "k2" : "v2" } ### ...

  3. Python全栈之路----数据类型—列表

    1.列表是一个数据的集合,集合内可以放任何数据类型,可对集合进行方便的增删改查操作.列表里面的数可以重复. L1 = [ ] #定义空列表 L2 = [ 'a' , 'b' , 'c' , 'd' ] ...

  4. Python全栈之路---数据类型—字符串

    字符串:有序的字符的集合,用于存储和表示基本的文本信息,一对单.双.或三引号中间包含的内容称之为字符串 1.特性:有序,不可变(开辟新地址存储字符串,python解释器会定期清空不用了的已存储的) & ...

  5. Python全栈之路----数据类型—元组类型

    元组类型:有序,不可变的,又叫只读列表  names = ("alex","jack","eric") 1.元组本身不可变,但如果元组中有可 ...

  6. Python全栈之路----目录

    Module1 Python基本语法 Python全栈之路----编程基本情况介绍 Python全栈之路----常用数据类型--集合 Module2 数据类型.字符编码.文件操作 Python全栈之路 ...

  7. python 全栈之路

    目录 Python 全栈之路 一. Python 1. Python基础知识部分 2. Python -函数 3. Python - 模块 4. Python - 面对对象 5. Python - 文 ...

  8. Python全栈之路目录结构

    基础 1.Python全栈之路-----基础篇 2.Python全栈之路---运算符与基本的数据结构 3.Python全栈之路3--set集合--三元运算--深浅拷贝--初识函数 4.Python全栈 ...

  9. Python全栈之路----常用模块----hashlib加密模块

    加密算法介绍 HASH       Python全栈之路----hash函数 Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列 ...

随机推荐

  1. 剑指offer(5)用两个栈实现队列

    题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 题目分析 栈是先进后出,队列是先进先出,因此两个栈,一个用来push,一个用来pop,同时注意下两个栈不 ...

  2. RabbitMQ&RocketMQ动态添加Queue参考

    Kafka重复消费与消息丢失参考: https://www.cnblogs.com/kaleidoscope/p/9763053.html https://blog.csdn.net/qingqing ...

  3. BZOJ4779: [Usaco2017 Open]Bovine Genomics

    题目描述 Farmer John owns Ncows with spots and N cows without spots. Having just completed a course in b ...

  4. Windows下nginx+tomcat实现简单的负载均衡

    Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器.反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请 ...

  5. python from entry to abandon

    学习Linux已经有大致两周了,依然感觉到自己仍然在运维的大门外徘徊.于是我想要找到一个在Linux之外的业余方向,可以以作为枯燥基础学习的调节.没过多久我就发现了Python可以说是钦定的选择,它作 ...

  6. 要想成为前端大神,那些你不得不知晓的web前端命名规范。

    一.Web语义化 1.1 H5的语义化 对于经验资深的前端er,在给web布局时,相信都会很注重标签和命名的规范.尤其是随着html5的普及发展,更是把web前端语义化推向一个新的台阶上.比如html ...

  7. 《Visual C# 从入门到精通》第一章使用变量、操作符和表达式——读书笔记

    前言: 这个笔记是我个人总结,主要是熟练自己查看<Visual C# 从入门到精通>(第8版)这本书时,懵然起总结的想法,只是总结一些知识点,在工作项目会用得上,但是对毫无C#语言基础的, ...

  8. springboot集成h2以及可视化操作

    1.新建项目

  9. echarts之折线图配置(附带图例很多做成分页效果)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  10. English trip EM2-LP-4B At School Teacher:Russell

    课上内容(Lesson) Where is Loki a student?  Loki is in Meten, BaobaoStreet, Chengdu. What is he studying? ...