创建字典的5种方式

用{}创建字典

>>> a = {'name':'韩梅梅','age':18,'job':'teacher'}
>>> print(a)
{'name': '韩梅梅', 'age': 18, 'job': 'teacher'}
-----------------------------------------------------------
>>> b = {'name':'韩梅梅','age':18,'job':['teacher','wife']}
>>> print(b)
{'name': '韩梅梅', 'age': 18, 'job': ['teacher', 'wife']}

用 dict 创建字典

>>> c = dict(name='李雷',age=19)
>>> print(c)
{'name': '李雷', 'age': 19}
----------------------------------------------
>>> d = dict([('name','韩梅梅'),('age',18)])
>>> print(d)
{'name': '韩梅梅', 'age': 18}

用 zip 函数创建字典

>>> x = ['name','age','job']
>>> y = ['韩梅梅','18','teacher']
>>> e = dict(zip(x,y))
>>> print(e)
{'name': '韩梅梅', 'age': '18', 'job': 'teacher'}

用{},dict 创建空字典

>>> f = {}
>>> print(f)
{}
-----------------------
>>> g = dict()
>>> print(g)
{}

用 fromkeys 创建'值为空'的字典

>>> h = dict.fromkeys(['name','age','job'])
>>> print(h)
{'name': None, 'age': None, 'job': None}

访问字典元素的4种方式

通过“ 键” 获取“ 值” 。若“ 键” 不存在,则抛出异常

>>> a = {'name':'韩梅梅','age':18,'job':'teacher'}
>>> a['name']
'韩梅梅'
>>> a['age']
18
>>> a['job']
'teacher'
# 若键不存在,抛出异常。
>>> a['names']
Traceback (most recent call last): File "<pyshell#197>", line 1, in <module> a['names']KeyError: 'names'

get()方法:强烈推荐的字典元素访问

优点:若'键'不存在,返回的是 None,而不是抛出异常。还可以设定,当'键'不存在时,自己设定默认的返回对象。

>>> b = {'name':'韩梅梅','age':18,'job':['teacher','wife','sister']}
>>> b.get('name')
'韩梅梅'
# 若'键'不存在,返回的是 None,而不是抛出异常。
>>> b.get('sex')
>>> b.get('sex')
None
>>> if b.get('sex') == None:
... print('我爱你')
我爱你
# 当'键'不存在时,自己设定默认的返回对象。
>>> b.get('sex','不存在')'
不存在

用 items 获取‘ 所有的键值对’

>>> a = {'name':'韩梅梅','age':18,'job':'teacher'}
>>> a.items()
dict_items([('name', '韩梅梅'), ('age', 18), ('job', 'teacher')])
>>> type(a.items())
<class 'dict_items'
>>>> for i in a.items():
... print(i)
('name', '韩梅梅')
('age', 18)
('job', 'teacher')

列出所得有‘键’:keys,列出所得有‘值’:values

>>> a = {'name':'韩梅梅','age':18,'job':'teacher'}
>>> a.keys()
dict_keys(['name', 'age', 'job'])
>>> a.values()
dict_values(['韩梅梅', 18, 'teacher'])

添加字典元素的2种方式

“ 键” 存在,则覆盖原有“ 键值对” 。“ 键” 不存在,新增键值对

格式:字典['键']:‘值’ 。

>>> a = {'name':'韩梅梅','age':18,'job':'teacher'}
>>> a['job'] = 'sister' #覆盖原有“ 键值对”
>>> print(a)
{'name': '韩梅梅', 'age': 18, 'job': 'sister'}
>>> a['height'] = 170 #新增“ 键值对”
>>> print(a)
{'name': '韩梅梅', 'age': 18, 'job': 'sister', 'height': 170}

使用 update 把 b 字典的所有‘ 键值对’ 添加到 a 字典中

格式:a.undate(b), 若果‘ 键值对重复’ ,直接覆盖;否则,合并。

>>> a = {'name':'韩梅梅','age':18,'job':'teacher'}
>>> a
{'name': '韩梅梅', 'age': 18, 'job': 'teacher'}
>>> b = dict([('job','Python'),('weight',75),('height',170)])
>>> b
{'job': 'Python', 'weight': 75, 'height': 170}
>>> a.update(b)
>>> a
{'name': '韩梅梅', 'age': 18, 'job': 'Python', 'weight': 75, 'height': 170}

删除字典元素的4种方式

del 方法:删除指定的“ 键值对”

注:一旦删除‘ 键’ 和‘ 值’ 就消失了。

>>> a = {'name':'韩梅梅','age':18,'job':'teacher'}
>>> del(a['job'])
>>> print(a)
{'name': '韩梅梅', 'age': 18}

clear 方法:删除字典中所有的‘ 键值对’

注:删除所有的, 有点狠。

>>> b = dict([('job','Python'),('weight',75),('height',170)])
>>> b{'job': 'Python', 'weight': 75, 'height': 170}>>> b.clear()>>> b{}

pop 方法:删除指定的‘ 键’

优点:“ 键” 删除后, 可以用一个“ 变量” 接收返回的“ 值” 。

>>> c = {'name':'李雷','age':18,'job':'teacher'}
>>> cc = c.pop('name')
>>> cc
'李雷'
>>> c
{'age': 18, 'job': 'teacher'}

popitem 方法:随机删除和返回‘ 键值对’

注:字典是无序可变序列,没有第一个元素、最后一个元素的概念

>>> b = {'name':'韩梅梅','age':18,'job':['teacher','wife']}
>>> bb = b.popitem()
>>> print(bb)
('job', ['teacher', 'wife'])
>>> bbb = b.popitem()
>>> print(bbb)
('age', 18)
>>> bbbb = b.popitem()
>>> print(bbbb)
('name', '韩梅梅')
>>> bbbbb = b.popitem()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'popitem(): dictionary is empty'

序列解包:运用于字典(类似于赋值)

利用 items:把‘ 键值对’ 赋给 b,c,d,e,f…

>>> a = {'name1':'韩梅梅','name2':'李雷','name3':'阿亮','name4':'荣哥'}
>>> b,c,d,e = a.items()
>>> b,c
(('name1', '韩梅梅'), ('name2', '李雷'))

利用 keys:把‘ 键’ 赋给 g,h,i,j,k…

>>> a = {'name1':'韩梅梅','name2':'李雷','name3':'阿亮','name4':'荣哥'}
>>> g,h,i,j = a.keys()
>>> g,h
('name1', 'name2')

利用 values:把‘ 键’ 赋给 l,m,n,o,p…

>>> a = {'name1':'韩梅梅','name2':'李雷','name3':'阿亮','name4':'荣哥'}
>>> l,m,n,o = a.values()
>>> l,m
('韩梅梅', '李雷)

Python基础(九):字典的使用的更多相关文章

  1. python基础之字典dict和集合set

    作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7043642.html python基础之字典dict和集合set 字典dic ...

  2. Python基础数据类型-字典(dict)

    Python基础数据类型-字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版本的哟 ...

  3. python基础之字典、集合

    一.字典(dictionary) 作用:存多个值,key-value存取,取值速度快 定义:key必须是不可变类型,value可以是任意类型 字典是一个无序的,可以修改的,元素呈键值对的形式,以逗号分 ...

  4. Python基础知识---字典

    现在在实习期间,好久没用Python了,今天在做Java项目时用的HashMap让我联想到了Python中的字典,就写一些Python字典的知识吧,复习复习. 字典:  key --> valu ...

  5. python基础5 字典

    一.字典 字典是python的基础数据类型之一:字典可以存储大量的数据,关系型数据. 同样他也是python中唯一的映射类的数据类型. 数据类型的分类: 可变的(不可哈希)数据类型:list,dict ...

  6. python基础_字典_列表_元组考试_day4

    1.请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li=['alex','eric','rain'] li=['alex','eric','rain'] v="_".jo ...

  7. Python基础__字典、集合、运算符

    之前讨论的字符串.列表.元组都是有序对象,本节则重点讨论无序对象:字典与集合.一.字典 列表是Python中的有序集合,列表中的序指的是列表中的元素与自然数集形成了一个一一对应的关系.例如L=['I' ...

  8. python基础类型—字典

    字典 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必 ...

  9. Python基础(九) type元类

    python元类:type()    元类是python高阶语法. 合理的使用可以减少大量重复性的代码. 元类实际上做了以下三方面的工作: 干涉创建类的过程 修改类 返回修改之后的类 为什么使用元类? ...

  10. Python 全栈开发二 python基础 字符串 字典 集合

    一.字符串 1,在python中,字符串是最为常见的数据类型,一般情况下用引号来创建字符串. >>ch = "wallace" >>ch1 = 'walla ...

随机推荐

  1. vue router & query params

    vue router & query params vue router get params from url https://zzk.cnblogs.com/my/s/blogpost-p ...

  2. [转]RoboWare Studio的使用和发布器/订阅器的编写与测试

    原文地址:https://blog.csdn.net/han_l/article/details/77772352,转载主要方便随时查阅,如有版权要求,请及时联系. 开始ROS学习之前,先按照官网教程 ...

  3. Python 装饰器原理剖析

    以下内容仅用于帮助个人理解装饰器这个概念,案例可能并不准确. 什么是装饰器? 我们知道iPhone 应用商店中有成千上万的APP,我们也知道苹果系统每年都会大版本更新增加很多新功能.这些功能要想发挥出 ...

  4. Vue3组件(九)Vue + element-Plus + json = 动态渲染的表单控件

    一个成熟的表单 表单表单,你已经长大了,你要学会: 动态渲染 支持单列.双列.多列 支持调整布局 支持表单验证 支持调整排列(显示)顺序 依据组件值显示需要的组件 支持 item 扩展组件 可以自动创 ...

  5. AForge实现拍照

    记得先引用DLL private FilterInfoCollection videoDevices; private VideoCaptureDevice videoSource; BLL.AWBL ...

  6. 如何在Pycharm中自动添加时间日期、作者等信息

    参考下面的内容 #_author_='Lucky';#date: ${DATE}

  7. JVisualVM监控JVM-外网服务器

    环境说明: a:阿里云服务器Centos8.2 b:JDK1.8 1:增加JMV运行参数 java -jar 启动时添加一下参数: -Djava.rmi.server.hostname=外网IP地址 ...

  8. SpringBoot2.1整合Mybatis-Generator以及tk.mybatis

    1:添加依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http ...

  9. Error Code: 1366. Incorrect DECIMAL value: '0' for column '' at row -1 0.266 sec;

    Reference: https://stackoverflow.com/questions/35037288/incorrect-decimal-integer-value-mysql     Er ...

  10. 如何用css写一个带斜切角、有边框又有内外阴影的按钮呢?

    如果有一天,UI设计师丢过来一张UI稿,上面有这样一个带有斜切角.有边框还有内外阴影的按钮,你会怎么实现呢?第一反应切图?可是按钮内容.大小都是可变的,那得切多少图啊~Canvas?SVG?No,no ...