创建字典的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. Chrome V8 系统架构

    Chrome V8 系统架构 Chromium 多进程多线程架构 design-documents https://www.chromium.org/developers/design-documen ...

  2. script async / defer

    script async / defer preload / prefetch https://abc.xgqfrms.xyz/ https://javascript.info/script-asyn ...

  3. 解析js字符串

    myEval export const evalExp = /[!\&\|\+\-\*\%=\/<\>\^\(\)\~\:\?\;]/g; export function myEv ...

  4. NGK数字钱包的特点是什么?NGK钱包的优点和缺点是什么?

    说起区块链数字资产,那就离不开谈到数字钱包.数字钱包不仅有资产管理的功能,还可以进行资产理财.资产交易,甚至能为公链DAPP导流. 对于NGK公链而言,其数字钱包已然成为了解NGK公链的基础条件.NG ...

  5. C++面试题集合(持续更新)

    C++面试中常被问到的几个知识点: 1. 基本概念 多态是什么,C++通过什么实现的多态.虚函数是什么,纯虚类是什么.重载是什么,重写是什么.重载运算符怎么写.new和malloc有什么区别.公有继承 ...

  6. iOS图片预览、放大缩小

    思路 图片预览,优先考虑基础控件UIImageView.UIButton 图片预览中可能需设置不同的mode,优先考虑UIImageView typedef NS_ENUM(NSInteger, UI ...

  7. Spring—Document root element "beans", must match DOCTYPE root "null"分析及解决方法

    网上很多人说要把applicationContex.xml文件中加上如下第二行的<!DOCTYPE/>标签,说明DTD.<?xml version="1.0" e ...

  8. 微信小程序:数据绑定

    data中的数据不仅仅可以当成文本来显示,还可以当成属性来显示. 注意:属性值要用单引号或双引号引起来. 在微信开发者工具的控制台中点击Wxml会看到 使用Boolean类型充当属性的时候,字符串和花 ...

  9. 面试系列二:精选大数据面试真题JVM专项-附答案详细解析

    公众号(五分钟学大数据)已推出大数据面试系列文章-五分钟小面试,此系列文章将会深入研究各大厂笔面试真题,并根据笔面试题扩展相关的知识点,助力大家都能够成功入职大厂! 大数据笔面试系列文章分为两种类型: ...

  10. jmeter数据库链接配置

    通常使用数据库有3个要求,性能好.数据一致性有保障.数据安全可靠:数据库优化的前提也是这三个要求.有句玩笑话叫少做少犯错,不做不犯错.DB优化的思路就是少做,减少请求次数,减少数据传输量,减少运算量. ...