Python基础(九):字典的使用
创建字典的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基础(九):字典的使用的更多相关文章
- python基础之字典dict和集合set
作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7043642.html python基础之字典dict和集合set 字典dic ...
- Python基础数据类型-字典(dict)
Python基础数据类型-字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版本的哟 ...
- python基础之字典、集合
一.字典(dictionary) 作用:存多个值,key-value存取,取值速度快 定义:key必须是不可变类型,value可以是任意类型 字典是一个无序的,可以修改的,元素呈键值对的形式,以逗号分 ...
- Python基础知识---字典
现在在实习期间,好久没用Python了,今天在做Java项目时用的HashMap让我联想到了Python中的字典,就写一些Python字典的知识吧,复习复习. 字典: key --> valu ...
- python基础5 字典
一.字典 字典是python的基础数据类型之一:字典可以存储大量的数据,关系型数据. 同样他也是python中唯一的映射类的数据类型. 数据类型的分类: 可变的(不可哈希)数据类型:list,dict ...
- python基础_字典_列表_元组考试_day4
1.请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li=['alex','eric','rain'] li=['alex','eric','rain'] v="_".jo ...
- Python基础__字典、集合、运算符
之前讨论的字符串.列表.元组都是有序对象,本节则重点讨论无序对象:字典与集合.一.字典 列表是Python中的有序集合,列表中的序指的是列表中的元素与自然数集形成了一个一一对应的关系.例如L=['I' ...
- python基础类型—字典
字典 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必 ...
- Python基础(九) type元类
python元类:type() 元类是python高阶语法. 合理的使用可以减少大量重复性的代码. 元类实际上做了以下三方面的工作: 干涉创建类的过程 修改类 返回修改之后的类 为什么使用元类? ...
- Python 全栈开发二 python基础 字符串 字典 集合
一.字符串 1,在python中,字符串是最为常见的数据类型,一般情况下用引号来创建字符串. >>ch = "wallace" >>ch1 = 'walla ...
随机推荐
- babel 常用操作
astexplorer babel-types code to ast const { parse } = babel; const code = ` for (let k in ${data}) { ...
- Flutter 创建dashboard页面
1 import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends Sta ...
- vue常用方法封装-一键安装使用(赠送免费工具)
相信大家在使用vue开发过程中一定遇到了各种方法的整理收集,每次遇到新的问题都需要找到合适的方法 这里我给大家封装了一些vue项目中常用到的方法合集,免费提供费大家 因此,jsoften横空出世,不为 ...
- NGK的发行量是多少?NGK销毁机制是怎么样的?
代币销毁(Coin Burning),是指将代币从流通中永久性去除.换句话说,被销毁的代币相当于被永久性冻结,再也无法流入市场.那为什么要进行代币销毁呢? 销毁加密货币,可以使剩余加密货币的价值升高, ...
- 一次 MySQL 线上死锁分析实战
关键词:MySQL Index Merge 前言 MySQL 的锁机制相信大家在学习 MySQL 的时候都有简单的了解过,那既然有锁就必定绕不开死锁这个问题.其实 MySQL 在大部分场景下是不会存在 ...
- TERSUS无代码开发(笔记06)-简单实例手机端页面设计
手机端的设计 1.页面说明 2.默认页面===>提交请假单(上面页面双击进入,页面主要编辑区) 2.1默认页面===>提交请假单===>头部区(页面部份主要编辑区01) 2.1.1默 ...
- 微信小程序:如何实现两个按钮在最右侧并排
要实现的效果: wxml端代码: <view class="prepare_param"> <view clas ...
- oracle impdp ORA-02304 invalid object identifier literal
reference: https://webgeest.blogspot.com/2015/07/ora-39083-ora-02304-on-impdp-datapump.html 解决方法 ...
- 主机回来以及,简单的环境配置(RTX3070+CUDA11.1+CUDNN+TensorRT)
紧接着前几天的事: 特殊的日子,想起了当年的双(1080TI)显卡装机实录 和 炼丹炉买不起了:聊一聊这段日子的显卡行情 之后,决定买一台整机玩玩. 而现在,主机终于回!来!了!主机回来干什么,当然是 ...
- docker 部署mysql服务之后,执行sql脚本
1,先将.sql文件copy到docker容器里 docker ps //找到容器的短ID或者指定的name. docker inspect -f '{{.Id}}' id or name 得到指定 ...