python基础数据类型之字典的操作
一. 字典的简单介绍
字典(dict)是python中唯一的一个映射类型.他是以{ }括起来的键值对组成. 在dict中key是
唯一的. 在保存的时候, 根据key来计算出一个内存地址. 然后将key-value保存在这个地址中.
这种算法被称为hash算法, 所以, 切记, 在dict中存储的key-value中的key'必须是可hash的,
如果你搞不懂什么是可哈希, 暂时可以这样记, 可以改变的都是不可哈希的, 那么可哈希就意味着不可变.
这个是为了能准确的计算内存地址 规定的.
已知的可哈希(不可变)的数据类型: int, str, tuple, bool
不可哈希(可变)的数据类型: list, dict, set
二. 字典的增删改查和其他相关操作
1.增加
dic = {}
dic['name'] = '周润发' # 如果dict中没有出现这个key, 就会新增一个key-value的组合进dict
dic['age'] = 18
print(dic)
# 如果dict中没有出现过这个key-value. 可以通过setdefault设置默认值 dic.setdefault('李嘉诚') # 也可以往里面设置值.
dic.setdefault("李嘉诚", "房地产") # 如果dict中已经存在 . 那么setdefault将不会起作用
print(dic)
2.删除
ret = dic.pop("jay")
print(ret)
del dic["jay"]
print(dic)
# 随机删除.
ret = dic.popitem()
# 清空字典中的所有内容
dic.clear()
3.修改
dic = {"id": 123, "name": 'sylar', "age": 18}
dic1 = {"id": 456, "name": "麻花藤", "ok": "wtf"}
dic.update(dic1) # 把dic1中的内容更新到dic中. 如果key重名. 则修改替换. 如果不存在key, 则新增.
print(dic)
print(dic1)
4.查询
查询一般用key来查找具体的数据.
print(dic['name'])
# print(dic['sylar']) # 报错
print(dic.get("ok"))
print(dic.get("sylar")) # None
print(dic.get("sylar", "牛B")) # 牛B
5.其他相关操作
dic = {"id": 123, "name": 'sylar', "age": 18, "ok": "科比"}
print(dic.keys()) # dict_keys(['id', 'name', 'age', 'ok']) 不用管它是什么.当成list来用就行
for key in dic.keys():
print(key)
print(dic.values()) # dict_values([123, 'sylar', 18, '科比']) 一样. 也当成list来
for value in dic.values():
print(value)
print(dic.items()) # dict_items([('id', 123), ('name', 'sylar'), ('age', 18), ('ok', '科比')]) 这个东西也是list. 只不 过list中装的是tuple
for key, value in dic.items(): # ?? 这个是解构
print(key, value)
# 解构
a, b = 1, 2
print(a, b)
(c, d) = 3, 4
print(c, d)
e, f = [1, 2, 3] # 解构的时候注意数量必须匹配
print(e, f)
三.字典的嵌套
dic1 = {
"name": "汪峰",
"age": 18,
"wife": {
"name": '章子怡',
"age": 28
},
"children": ['第一个毛孩子', '第二个毛孩子'],
"desc": '峰哥不会告我吧. 没关系. 我想上头条的'
}
print(dic1.get("wife").get("name"))
print(dic1.get("children"))
print(dic1.get("children")[1])
python基础数据类型之字典的操作的更多相关文章
- Python基础数据类型之字典
基础数据类型之字典 ps:数据类型划分:可变数据类型和不可变数据类型. 不可变数据类型:元组(tupe).布尔值(bool).整数型(int).字符串(str).不可变数据类型也称为可哈希. 可变 ...
- python基础数据类型--dict 字典
字典 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必 ...
- Python - 基础数据类型 dict 字典
字典简介 字典在 Python 里面是非常重要的数据类型,而且很常用 字典是以关键字(键)为索引,关键字(键)可以是任意不可变类型 字典由键和对应值成对组成,字典中所有的键值对放在 { } 中间,每一 ...
- python基础数据类型之列表,元组操作
一.列表的索引和切片1.列表的索引列表和字符串一样样拥有索引 lst = ["a","b","c"] print(lst[0]) # 获取第 ...
- Python基础数据类型-字典(dict)
Python基础数据类型-字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版本的哟 ...
- Python基础数据类型-列表(list)和元组(tuple)和集合(set)
Python基础数据类型-列表(list)和元组(tuple)和集合(set) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的 ...
- python基础数据类型考试题
Python基础数据类型考试题 考试时间:两个半小时 满分100分(80分以上包含80分及格) 一,基础题. 1,简述变量命名规范(3分) 2,字节和位的关系 ...
- Python基础数据类型题
Python基础数据类型 题考试时间:三个小时 满分100分(80分以上包含80分及格)1,简述变量命名规范(3分) 1.必须是字母,数字,下划线的任意组合. 2.不能是数字开头 3.不能是pytho ...
- 『Python基础-10』字典
# 『Python基础-10』字典 目录: 1.字典基本概念 2.字典键(key)的特性 3.字典的创建 4-7.字典的增删改查 8.遍历字典 1. 字典的基本概念 字典一种key - value 的 ...
随机推荐
- 聊一聊IAR的workspace文件组织
抽空偶尔做个zigbee实验其实也挺好玩的,今天我就来总结一下嵌入式IAR Embedded Workbench这个非常有效的集成开发环境的文件组织. 每一个workspace由一般是由.c文件和一个 ...
- Kudu的配置(官网推荐的步骤)(Configuring Apache Kudu)
不多说,直接上干货! http://kudu.apache.org/docs/configuration.html
- vsftpd配置文件详解 ---配置解说
vsftpd配置文件详解 1.默认配置: 1>允许匿名用户和本地用户登陆. anonymous_enable=YES local_enable=YES 2>匿名 ...
- http 中的缓存
如何判断缓存新鲜度 If-Modified-Since告诉服务器, 在服务器中的响应报文中有一个Last-Modified字段, 如果两者一直则表示在浏览器中缓存的文件是最新的, 可以直接使用浏览器缓 ...
- MyEclipse 比较常用的快捷键
Ctrl+D: 删除当前行 Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了) Alt+↑ 当前行和上面一行交互位置(同上) Alt+← 前一个编辑的页面 Alt+→ 下一个编 ...
- 温习SQL语句
作为一名使用C#语言开发人员,就很难逃脱与SQLSERVER打交道,虽说我们是开发人员,但我想说的是,对数据库的操作还是应该时不时的拿出来温习一番.下面那就是我见过的一道有趣的SQL题目,与你们一起分 ...
- vue学习第三天 ------ 临时笔记
说明:之前两天属于入门,文章可能存在片段信息 vue2.x+webpack快速搭建前端项目框架详解 http://www.jb51.net/article/129463.htmVue cli + We ...
- 实现AB值对换的两种方法
package com.smbea.demo.exchange; /** * AB对换 * @author hapday * @2017年1月22日 @上午12:36:24 */ public cla ...
- html table 的属性
表格table th,td 文字顶部对齐 <th valign="top"></th> <td valign="top">& ...
- Spark Job调度
Spark Job调度 1.概览 Spark有几种用于在计算之间调度资源的工具.首先,回想一下,如集群模式概述中所述,每个Spark应用程序(SparkContext的实例)都运行一组独立的execu ...