Python 字典中的所有方法及用法


Posted in Python onJune 10, 2020

字典是Python中唯一内建的映射类型。字典中没有特殊的顺序,但都是存储在一个特定的键(key)下面,键可以是数字,字符串,甚至是元组

字典的使用

在某些情况下,字典比列表更加适用:
1、表示一个游戏棋盘的状态,每个键都是由坐标值组成的元组
2、存储文件修改时间,用文件名作为键;
3、数字电话\地址薄

创建字典的五种方式

# 字典的创建方式
# 方式一 {key: value}
dict1 = {'one': 1, 'two': 2, 'three': 3}
print(dict1)

# 方式二 dict(zip(keys, values))
# dict([(k, v), (k, v)])
dict2 = dict([('one', 1), ('two', 2), ('three', 3)])
print(dict2)

# dict(((k, v), (k, v)))
dict3 = dict((('one', 1), ('two', 2), ('three', 3)))
print(dict3)

# 方式三 dict(key=value)
dict4 = dict(one=1, two=2, three=3)
print(dict4)

# 方式四 字典推导式
lst1 = ['one', 'two', 'three']
lst2 = [1, 2, 3]
dict5 = {lst1[i]: lst2[i] for i in range(len(lst1))}
print(dict5)

# 方式五 fromkeys
# 没有指定value,默认None
dict6 = dict.fromkeys(['k1', 'k2', 'k3'])
print(dict6) # {'k1': None, 'k2': None, 'k3': None}

# 指定value
dict7 = dict.fromkeys(['k1', 'k2', 'k3'], 'value')
print(dict7) # {'k1': 'value', 'k2': 'value', 'k3': 'value'}

字典的示例

1. setdefault使用

# 有则不变,无则增加
dic1 = {'name': 'lucy', 'age': 18}
dic1.setdefault('age', 45) # {'name': 'lucy', 'age': 18}
dic1.setdefault('sex', '男') # {'name': 'lucy', 'age': 18, 'sex': '男'}

2. pop使用

# 按照键删除键值对,有返回值
# 如果设置了第二个参数则无论字典中有无此键都不会报错
dic2 = {'name': 'lucy', 'age': 18}
ret2 = dic2.pop('age')
print(ret2) # 18
print(dic2) # {'name': 'lucy'}

dic3 = {'name': 'lucy', 'age': 18}
ret3 = dic3.pop('sex', '没有此键')
print(ret3) # 没有此键
print(dic3) # {'name': 'lucy', 'age': 18}

3. clear使用

# 清空
dic4 = {'name': 'lucy', 'age': 18}
dic4.clear()
print(dic4) # {}

4. get使用

dic5 = {'name': 'lucy', 'age': 18, 'hobby_list': ['study', 'play', 'shopping']}

l1 = dic5.get('hobby_list')
print(l1) # ['study', 'play', 'shopping']

l2 = dic5.get('sex')
print(l2) # None

l3 = dic5.get('sex', '没有此键')
print(l3) # 没有此键

5. keys()使用

dic6 = {'name': 'lucy', 'age': 18, 'hobby_list': ['study', 'play', 'shopping']}

# 1. 特殊的数据类型,类似于列表,但是没有索引
print(dic6.keys(), type(dic6.keys())) # dict_keys(['name', 'age', 'hobby_list']) <class 'dict_keys'>

# 2. 可以转化成列表
l1 = list(dic6.keys())
print(l1) # ['name', 'age', 'hobby_list']

# 3. 循环遍历
for k in dic6.keys():
 print(k, end=',') # name,age,hobby_list,

for k in dic6:
 print(k, end=',') # name,age,hobby_list,

6. values()使用

dic7 = {'name': 'lucy', 'age': 18, 'hobby_list': ['study', 'play', 'shopping']}

# 1. 特殊的数据类型,类似于列表,但是没有索引
print(dic7.values()) # dict_values(['lucy', 18, ['study', 'play', 'shopping']])

# 2. 可以转化成列表
print(list(dic7.values())) # ['lucy', 18, ['study', 'play', 'shopping']

# 3. 循环遍历
for val in dic7.values():
 print(val, end=',') # lucy,18,['study', 'play', 'shopping'],

7. items()使用

dic8 = {'name': 'lucy', 'age': 18, 'hobby_list': ['study', 'play', 'shopping']}
print(dic8.items()) # dict_items([('name', 'lucy'), ('age', 18), ('hobby_list', ['study', 'play', 'shopping'])])

for it in dic8.items():
 print(it)
# ('name', 'lucy')
# ('age', 18)
# ('hobby_list', ['study', 'play', 'shopping'])

# 利用了元组的拆包
for key, value in dic8.items():
 print(key, value)
# name lucy
# age 18
# hobby_list ['study', 'play', 'shopping']

8. update()使用

# 更新,有则覆盖,无则添加
# 1. 增加键值对
# 方式一:
dic9 = {'name': 'lucy', 'age': 18}
dic9.update(hobby='运动', hight=178)
print(dic9) # {'name': 'lucy', 'age': 18, 'hobby': '运动', 'hight': 178}

# 方式二:
dic10 = {'name': 'lucy', 'age': 18}
dic10.update([('hobby', '运动'), ('hight', 178)])
print(dic10) # {'name': 'lucy', 'age': 18, 'hobby': '运动', 'hight': 178}

# 方式三:
dic11 = {'name': 'lucy', 'age': 18}
dic12 = {'name': 'tom', 'hight': 178}
dic11.update(dic12)
print(dic11) # {'name': 'tom', 'age': 18, 'hight': 178}

# 2. 修改键所对应的值
dic13 = {'name': 'lucy', 'age': 18}
dic13.update(name='tom')
print(dic13) # {'name': 'tom', 'age': 18}

9. fromkeys()使用

# 没有指定value,默认None
dict14 = dict.fromkeys(['k1', 'k2', 'k3'])
print(dict14) # {'k1': None, 'k2': None, 'k3': None}

# 指定value
dict14 = dict.fromkeys(['k1', 'k2', 'k3'], 'value')
print(dict14) # {'k1': 'value', 'k2': 'value', 'k3': 'value'}

10. copy使用

# 浅拷贝
dict15 = dict(one=1, two=2, three=3)
dict16 = dict15.copy()
print(dict16)

11. popitem()使用

# 随机删除字典中的一对 键和值
dict17 = dict(one=1, two=2, three=3)
a = dict17.popitem()
print(a)
print(dict17)
 

到此这篇关于Python 字典中的所有方法及用法的文章就介绍到这了,更多相关Python 字典方法及用法内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
pyqt4教程之实现半透明的天气预报界面示例
Mar 02 Python
python 示例分享---逻辑推理编程解决八皇后
Jul 20 Python
python将图片文件转换成base64编码的方法
Mar 14 Python
python中尾递归用法实例详解
Apr 28 Python
python 简单备份文件脚本v1.0的实例
Nov 06 Python
python中从str中提取元素到list以及将list转换为str的方法
Jun 26 Python
使用Python更换外网IP的方法
Jul 09 Python
用python打印菱形的实操方法和代码
Jun 25 Python
python实现的读取网页并分词功能示例
Oct 29 Python
python实现秒杀商品的微信自动提醒功能(代码详解)
Apr 27 Python
python如何读取.mtx文件
Apr 22 Python
Pytorch中TensorBoard及torchsummary的使用详解
May 12 Python
在keras 中获取张量 tensor 的维度大小实例
Jun 10 #Python
Keras—embedding嵌入层的用法详解
Jun 10 #Python
Keras框架中的epoch、bacth、batch size、iteration使用介绍
Jun 10 #Python
Python3.9 beta2版本发布了,看看这7个新的PEP都是什么
Jun 10 #Python
JAVA及PYTHON质数计算代码对比解析
Jun 10 #Python
keras 使用Lambda 快速新建层 添加多个参数操作
Jun 10 #Python
matplotlib 生成的图像中无法显示中文字符的解决方法
Jun 10 #Python
You might like
PHP多线程抓取网页实现代码
2010/07/22 PHP
PHP提示Cannot modify header information - headers already sent by解决方法
2014/09/22 PHP
PHP callback函数使用方法和注意事项
2015/01/23 PHP
WordPress中Gravatar头像缓存到本地及相关优化的技巧
2015/12/19 PHP
php安装php_rar扩展实现rar文件读取和解压的方法
2016/11/17 PHP
php 开发中加密的几种方法总结
2017/03/22 PHP
PHP实现对xml进行简单的增删改查(CRUD)操作示例
2017/05/19 PHP
jscript之List Excel Color Values
2007/06/13 Javascript
jquery插件实现鼠标经过图片右侧显示大图的效果(类似淘宝)
2013/02/04 Javascript
jquery 插件实现瀑布流图片展示实例
2015/04/03 Javascript
js限制input标签中只能输入中文
2015/06/26 Javascript
JS实现从连接中获取youtube的key实例
2015/07/02 Javascript
iframe跨域通信封装详解
2015/08/11 Javascript
jQuery实现的AJAX简单弹出层效果代码
2015/11/26 Javascript
JavaScript求一组数的最小公倍数和最大公约数常用算法详解【面向对象,回归迭代和循环】
2018/05/07 Javascript
jQuery中的类名选择器(.class)用法简单示例
2018/05/14 jQuery
微信小程序实现商品属性联动选择
2019/02/15 Javascript
vue element实现表格合并行数据
2020/11/30 Vue.js
[38:41]2014 DOTA2国际邀请赛中国区预选赛 LGD VS CNB
2014/05/22 DOTA
Python多线程编程(五):死锁的形成
2015/04/05 Python
如何使用Python进行OCR识别图片中的文字
2019/04/01 Python
Python实现屏幕录制功能的代码
2020/03/02 Python
css3的transition属性详解
2014/12/15 HTML / CSS
HTML5中form如何关闭自动完成功能的方法
2018/07/02 HTML / CSS
诗狄娜化妆品官方网站:Stila Cosmetics
2016/12/21 全球购物
美国著名的女性内衣零售商:Frederick’s of Hollywood
2018/02/24 全球购物
网络工程专业毕业生推荐信
2013/10/28 职场文书
关于毕业的中学校园广播稿
2014/01/26 职场文书
创业计划书模版
2014/02/05 职场文书
珍惜水资源建议书
2014/03/12 职场文书
学术诚信承诺书
2014/05/26 职场文书
学校交通安全责任书
2014/08/25 职场文书
小学生运动会通讯稿
2014/09/23 职场文书
委托培训协议书
2014/11/17 职场文书
2014年反腐倡廉工作总结
2014/12/05 职场文书
2014年学校体育工作总结
2014/12/08 职场文书