Python基础之字典
字典初识
字典的认识
首先,我们来认识一下字典:
# 定义一个字典
user_dict = {"name": "zhangsan", "age": 20, "height": 181}
print(user_dict)
# {'name': 'zhangsan', 'age': 20, 'height': 181}
字典的作用和定义语法
- 字典是除列表之外最灵活的数据类型;
- 字典同样可以用来存储多个数据,但字典通常用来存储 描述一个物体的相关信息;
- 列表元组中我们更在意的是顺序,按索引顺序取值;在字典中我们更在意的是键和值;
- 列表元组有序,而字典无序;(补充一下,在pycharm运行下,其实基本都是按定义的键值对顺序输出的)
- 字典使用键值对存储数据,几对 键值对之间用逗号分隔;键key是索引,值value是数据;键和值之间用冒号:分隔;键必须是唯一的;值可以取任何数据类型,但键必须是字符串,数字或者元组。
字典的定义语法
变量名 = {"key1": "value1", "key2": "value2", "key3": "value3", ... }
eg:
user_dict = {"name": "zhangsan", "age": 20, "height": 181}
字典的定义和取值
# 定义一个字典
user_dict = {"name": "zhangsan", "age": 20, "height": 181}
# 注意,字典是个无序的数据集合,字典的每次输出的结果可能顺序不一致
print(user_dict)
# 字典取值
print(user_dict["name"])
print(user_dict["height"])
字典的基本使用-增删改查
user_dict = {"name": "zhangsan", "age": 20, "height": 181}
# 取值,注意,如果取值的key不存在,会报错
print(user_dict["name"])
# 增加/修改
print(user_dict)
# 如果key不存在,会新增键值对;存在则进行修改
user_dict["gender"] = "man"
user_dict["age"] = 21
print(user_dict)
# 删除,注意,如果删除键值对 时key不存在,会报错
user_dict.pop("height")
print(user_dict)
字典的操作函数
字典操作函数查看
在ipython3交互式下,定义一个空字典, 空字典. 按下tab键,即可查看;例如:
In [1]: user_dict = {}
In [2]: user_dict.
user_dict.clear user_dict.items user_dict.setdefault
user_dict.copy user_dict.keys user_dict.update
user_dict.fromkeys user_dict.pop user_dict.values
user_dict.get user_dict.popitem
In [2]: user_dict.
由此可见,字典的操作函数有:
user_dict.clear user_dict.items user_dict.setdefault
user_dict.copy user_dict.keys user_dict.update
user_dict.fromkeys user_dict.pop user_dict.values
user_dict.get user_dict.popitem
字典常用操作函数罗列
| 方法 | 描述 |
|---|---|
| len(dict) | 获取字典的 键值对 数量 |
| dict.keys() | 所有 key列表 |
| dict.values() | 所有 value列表 |
| dict.items() | 所有 (key,value)元组列表 |
| dict[key] | 从字典取值,key不存在会报错 |
| dict.get(key) | 从字典取值,key不存在不会报错 |
| del dict[key] | 删除指定键值对,key不存在会报错 |
| dict.pop(key) | 删除指定键值对,key不存在会报错 |
| dict.pop(item) | 随机删除一个键值对 |
| dict.clear() | 清空字典 |
| dict[key] = value | key存在,修改value;key不存在,新增键值对 |
| dict.setdefault(key, value) | key存在,不会修改value;key不存在,新增键值对 |
| dict.update(dict2) | 将字典2的数据合并到字典1 |
字典操作实操
user_dict = {"name": "zhangsan", "age": 20, "height": 181}
# 1.统计键值对数量
print(len(user_dict)) # 3
# 2.合并字典
# 注意,如果被合并的字典2中有已经存在于字典1中的键值对,新的键值对会覆盖原字典的
gender = {"gender": "man"}
user_dict.update(gender)
print(user_dict)
# {'name': 'zhangsan', 'age': 20, 'height': 181, 'gender': 'man'}
# 3.请空字典
user_dict.clear()
print(user_dict) # {}
字典其他扩展
字典 循环遍历
遍历 就是 依次从字典中获取键值对;
但在实际开发中,由于字典的每一个键值对保存数据的数据类型时不一样的,所以针对字典的循环遍历的情况不怎么多;
user_dict = {"name": "zhangsan", "age": 20, "height": 181}
# k 是每次循环中,获取到的键值对的key
for k in user_dict:
print("%s: %s"% (k, user_dict[k]))
# name: zhangsan
# age: 20
# height: 181
字典的应用场景
使用 多个键值对,存储描述一个物体的相关信息,描述更复杂的数据信息
将多个字典·1放在一个列表中,再进行遍历,在循环内部针对每一个字典进行相同的处理;
students = [
{"name": "zhangsan", "age": 19, "height": 175},
{"name": "lisi", "age": 19, "height": 178}
]for stu in students:
# 字典是无序的,列表是有序的,所以会先输出张三的字典,再输出李四的字典,但字典内部顺序不定
print(stu)
# {'name': 'zhangsan', 'age': 19, 'height': 175}
# {'name': 'lisi', 'age': 19, 'height': 178}
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 全栈开发二 python基础 字符串 字典 集合
一.字符串 1,在python中,字符串是最为常见的数据类型,一般情况下用引号来创建字符串. >>ch = "wallace" >>ch1 = 'walla ...
- python基础之字典以及增删改查
字典:字典是python中唯一的一个映射类型,主要形式为 dic = {key1:value,key2:value2,....} 字典中key的值是唯一的,主要关系到HASH算法,并且key的值必须是 ...
随机推荐
- Windows-删除Windows Server backup卷影副本
现有环境中有一台Windows Server做过定期备份计划,时间太久未做清理操作,收到磁盘报警邮件后需要及时释放该空间,具体操作步骤如下: 当前备份计划信息如下: 清理步骤如下: 1.以管理身份运行 ...
- LOJ #6041. 「雅礼集训 2017 Day7」事情的相似度
我可以大喊一声这就是个套路题吗? 首先看到LCP问题,那么套路的想到SAM(SA的做法也有) LCP的长度是它们在parent树上的LCA(众所周知),所以我们考虑同时统计多个点之间的LCA对 树上问 ...
- 免费申请使用IBM Cloud Lite(轻量套餐) 续
之前尝试申请了IBM的轻量套餐,过程很简单,操作起来也比较方便,就是能够用到的地方不多,虽说几乎是无限流量且永久免费,我能做的也只是做个小网站 免费用户默认的是轻量应用服务,如果需要功能更多更全的应用 ...
- PHP全栈学习笔记6
php能做什么,它是运行在服务器端的,web网站大部分数据都是存储在服务器上的,PHP就是用来处理这些存储在服务器的数据.跨平台,服务器可以是多种平台上的服务器,脚本语言,免费. wampserver ...
- 难以理解的AQS(下)
在上一篇博客,简单的说下了AQS的基本概念,核心源码解析,但是还有一部分内容没有涉及到,就是AQS对条件变量的支持,这篇博客将着重介绍这方面的内容. 条件变量 基本应用 我们先通过模拟一个消费者/生产 ...
- Linux 进程终止后自动重启
/opt/a.sh #! /bin/bash ps -ef | grep python3 a.py | grep -v grep | grep python3 if [ $? -ne 0 ] then ...
- 【朝花夕拾】Android性能篇之(八)ANR篇--草稿
1.ANR概念 2.ANR发生场景 Android开发者官网 上说到了两个原因:(1)点击按键或者触摸屏幕等输入事件在5s内没有响应:(2)10s内没有完成广播事件.如下所示: Android wil ...
- GetPathFromUri4kitkat【Android 4.4 kitkat以上及以下根据uri获取路径的方法】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 在Android4.4之前和之后,通过Intent调用文件管理器选择文件,获取的文件uri地址形式是不同的. Android6.0 ...
- 网络学习笔记(一):TCP连接的建立与关闭
五层网络模型分为:物理层.数据链路层.网络层.传输层.应用层.其中,传输层有两种主要协议:面向连接的TCP(Transmission Control Protocol 传输控制协议).无连接的UD ...
- SLAM+语音机器人DIY系列:(二)ROS入门——7.理解tf的原理
摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所以本文就重点对ROS ...