Python基本数据结构之字典类型dict用法分析


Posted in Python onJune 08, 2019

本文实例讲述了Python基本数据结构之字典类型dict用法。分享给大家供大家参考,具体如下:

词典类型 dict

字典由键(key)和对应值(value)成对组成。字典也被称作关联数组或哈希表。

dict 赋值

dict 整体放在花括号{}中,每个键与值用冒号隔开(:),每对用逗号分割; d = {'one':1, 'two':2, 'three':3}

键必须独一无二,但值则不必;值可取任何数据类型,如字符串,数或元组;若创建时同一个键被赋值两次,后一个值会被记住;

键必须不可变,所以可以用数,字符串或元组充当,用列表就不行

dict() 强制转换,可接受以下形式,参见下例

a = dict(one=1, two=2, three=3)
b = {'one': 1, 'two': 2, 'three': 3}
c = dict(zip(['one', 'two', 'three'], [1, 2, 3]))
d = dict([('two', 2), ('one', 1), ('three', 3)])
e = dict({'three': 3, 'one': 1, 'two': 2})
print(a == b == c == d == e)

dict 操作

词典类型适用于对应键的取值,十分实用;对于dict的访问、修改、增加、删除等操作需要熟练掌握

以下列出了常用的用法,详细请参考:

访问值、修改值

dict_name['key_name'] 可直接访问值,可直接更改该值

d = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
print(d['Name'],d['Age'],d['Class'])      # 访问键值访问 dict_name['key_name']
print("%s's age is %d, class is: %s." %(d['Name'], d['Age'],d['Class']))  # 字符串输出
# print(d['name'])         # 无该键值,会报错,注意大小写
d['Age'] = 8
print(d['Age'])          # 可直接修改键的数值,数值类型不限

键的增加、删除

判断key是否存在于dict中,使用 key_name in/not in dict_name

增加键值即对新的键赋值 dict_name['new key_name'] = value ;删除键值使用 del dict_name['key_name']

清空词典使用 dict_name.clear()

d = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
print(d['Name'],d['Age'],d['Class'])      # 访问键值访问 dict['key_name']
print("%s's age is %d, class is: %s." %(d['Name'], d['Age'],d['Class']))  # 字符串输出
# print(d['name'])        # 无该键值,会报错,注意大小写
d['Age'] = 8
print(d['Age'])          # 可直接修改键的数值,数值类型不限
print('Name' in d)        # 判断键是否存在
print('xxx' not in d)       # 判断键是否不存在
d['Sex'] = "Female"        # 增加键值直接赋值即可
print(d)
del d['Class']          # 删除键值
print(d)
# del d['Class']         # 若无键值,会报错
d.clear()             # 清空dict
print(d)

dict view objects

len(dict_name) 返回词典键值组合数,可单独取出所有键 dict_name.keys() , 单独取出所有的值 dict_name.values()

d = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
print(len(d))          # 键值的组合数量
print(d.keys(),type(d.keys()))  # 为dict_keys 类型,可list()转换为list 或 set()转换为set
print(d.values())        # 为dict_values 类型
print(d.items())         # 为dict_items 类型

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python网络编程学习笔记(九):数据库客户端 DB-API
Jun 09 Python
跟老齐学Python之重回函数
Oct 10 Python
八大排序算法的Python实现
Jan 28 Python
Django查询数据库的性能优化示例代码
Sep 24 Python
Python实现列表删除重复元素的三种常用方法分析
Nov 24 Python
详解PyTorch批训练及优化器比较
Apr 28 Python
在PyTorch中Tensor的查找和筛选例子
Aug 18 Python
python快速排序的实现及运行时间比较
Nov 22 Python
flask的orm框架SQLAlchemy查询实现解析
Dec 12 Python
如何在Django中使用聚合的实现示例
Mar 23 Python
Python中的With语句的使用及原理
Jul 29 Python
Python PIL按比例裁剪图片
May 11 Python
Python学习笔记基本数据结构之序列类型list tuple range用法分析
Jun 08 #Python
Python面向对象之类的封装操作示例
Jun 08 #Python
Python面向对象之类和实例用法分析
Jun 08 #Python
Python学习笔记之自定义函数用法详解
Jun 08 #Python
Python3基础教程之递归函数简单示例
Jun 07 #Python
Python正则表达式匹配和提取IP地址
Jun 06 #Python
Python 常用模块 re 使用方法详解
Jun 06 #Python
You might like
PHP 数组入门教程小结
2009/05/20 PHP
解析php中die(),exit(),return的区别
2013/06/20 PHP
基于PHP magic_quotes_gpc的使用方法详解
2013/06/24 PHP
php 地区分类排序算法
2013/07/01 PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
2018/01/15 PHP
node.js中RPC(远程过程调用)的实现原理介绍
2014/12/05 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形网络(1)
2015/11/30 Javascript
JS模拟的Map类实现方法
2016/06/17 Javascript
JavaScript兼容浏览器FF/IE技巧
2016/08/14 Javascript
JavaScript中Array的实用操作技巧分享
2016/09/11 Javascript
vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
2017/03/30 Javascript
浅谈vue-router 路由传参的方法
2017/12/27 Javascript
vue 实现通过手机发送短信验证码注册功能
2018/04/19 Javascript
JS+css3实现幻灯片轮播图
2020/08/14 Javascript
SublimeText 2编译python出错的解决方法(The system cannot find the file specified)
2013/11/27 Python
Python装饰器decorator用法实例
2014/11/10 Python
python开发之list操作实例分析
2016/02/22 Python
Python函数式编程
2017/07/20 Python
详解supervisor使用教程
2017/11/21 Python
详解Python在七牛云平台的应用(一)
2017/12/05 Python
Tensorflow 利用tf.contrib.learn建立输入函数的方法
2018/02/08 Python
python3中函数参数的四种简单用法
2018/07/09 Python
Python解析、提取url关键字的实例详解
2018/12/17 Python
django-rest-framework 自定义swagger过程详解
2019/07/18 Python
python操作gitlab API过程解析
2019/12/27 Python
Python JSON编解码方式原理详解
2020/01/20 Python
python中用ctypes模拟点击的实例讲解
2020/11/26 Python
新西兰便宜隐形眼镜购买网站:QUICKLENS New Zealand
2019/03/02 全球购物
Java语言程序设计测试题选择题部分
2014/04/03 面试题
物流管理专业应届生求职信
2013/11/21 职场文书
公益活动策划方案
2014/01/09 职场文书
麦当劳辞职信范文
2014/01/18 职场文书
2016年习总书记讲话学习心得体会
2016/01/20 职场文书
简单总结SpringMVC拦截器的使用方法
2021/06/28 Java/Android
Golang 实现WebSockets
2022/04/24 Golang
搭建Yolov5服务器
2022/04/30 Servers