创建字典的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. element-ui的树型结构图,半选状态数据给后台后,返回数据带有半选父节点的剔除展示

    // html <h2 class="text-gray">功能权限</h2><el-tree :data="permissionList& ...

  2. 智能合约稳定币USDN的价值在哪里?

    近几年来,区块链和数字货币市场快速发展,客观上需要价格相对稳定的交易媒介和贮藏手段,从而推动以链上资产或链下资产抵押型稳定币和算法型稳定币出现,以实现币价相对稳定的数字货币.市场上开始出现了诸如USD ...

  3. re模块之简单计算器的实现

    本节大纲: 表达式的输入及检查.格式化 怎么样进行匹配最里面的括号以及操作数的匹配 如何实现表达式的四则运算 完整代码展示 在我们学习re模块之后,通常的练习就是利用所学相关知识来写一个计算器 那么, ...

  4. H5 常见问题汇总及解决方案

    原文链接:http://mp.weixin.qq.com/s/JVUpsz9QHsNV0_7U-3HCMg H5 项目常见问题汇总及解决方案 -- 由钟平勇分享 转自 https://github.c ...

  5. 重量级锁synchronized的优化----自旋锁、自适应自旋锁、锁消除、锁粗化

    synchronized是重量级锁,效率不高.但在jdk 1.6中对synchronize的实现进行了各种优化,使得它显得不是那么重了.jdk1.6对锁的实现引入了大量的优化,如自旋锁.自适应自旋锁. ...

  6. 安装并运行Nacos

    方式一:源码或者安装包 一.下载源码或者安装包 git clone https://github.com/alibaba/nacos.git 二.安装 cd nacos/ mvn -Prelease- ...

  7. DOS打开方式

    一.CMD窗口 Ⅰ.普通身份 按下键盘组合键:Windows + R --> 出现'运行'窗口,在'打开'的输入框中输入'cmd' --> 点击确定 打开'开始'菜单 --> 找到' ...

  8. Springboot项目架构设计

    导航 前言 流水线 架构的艺术 项目架构 理解阿里应用分层架构 superblog项目架构 结语 参考 本节是<Spring Boot 实战纪实>的第7篇,感谢您的阅读,预计阅读时长3mi ...

  9. AndroidStudio 中 gradle.properties 的中文值获取乱码问题

    0x01 现象 在gradle.properties中定义了全局变量,然后从 build.gradle 中设置 app_name: resValue "string", " ...

  10. Google单元测试框架gtest之官方sample笔记3--值参数化测试

    1.7 sample7--接口测试 值参数不限定类型,也可以是类的引用,这就可以实现对类接口的测试,一个基类可以有多个继承类,那么可以测试不同的子类功能,但是只需要写一个测试用例,然后使用参数列表实现 ...