python基础数据类型--dict 字典
字典
字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。
字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
在字典中,key的数据类型必须是不可变的,而value可以是任何数据类型,此外key必须是唯一的,否则覆盖之前的
# 数据类型分类:
# 可变的(不可哈希)数据类型:list ,dict
# 不可变的(哈希)数据类型:str,int,bool,tuple
dic = {
'name':1,
1:'kingfan',
(1,2):{'name':'kingfan'}
}
字典的增方法
字典增常用的方法主要有两种:1、通过key直接增加。2、setdefault方法增加.
1、通过key增加
通过dic[key] = value方法增加,当输入的key在原字典没有时,会生成新的key-value对。如果输入的key在字典中已经存在,则会替换原key-value对中的value
dic = {'name':'王帆','age':18}
dic['sex'] = '男'
print(dic)
#打印结果:{'name': '王帆', 'age': 18, 'sex': '男'}
dic = {'name':'王帆','age':18}
dic['age'] = 22
print(dic)
#打印结果:{'name': '王帆', 'age': 22}
2、setdefault方法
使用方式dic.setdefault(key,value),该方法会在字典中先寻找该key,如果字典中没有key,则在字典中添加新的key-value对,并返回新的value值。但是如果key已经存在,则不会进行任何操作,并返回原key对应的value值。
如下程序演示,当key = 'sex'时,由于字典中本来是没有该key,则会生成新的key-value对添加到字典中,并返回新value值,
当输入‘name’时由于字典中本身有该key,则不会对字典进行操作并返回该key在字典中对应的value
dic = {'name':'王帆','age':18}
print(dic.setdefault('sex','男'))
print(dic)
#运行结果:男
#{'name': '王帆', 'age': 18, 'sex': '男'}
dic = {'name':'王帆','age':18}
print(dic.setdefault('name','杨莉'))
print(dic)
#运行结果:
#王帆
#{'name': '王帆', 'age': 18}
字典的删方法
1.pop
pop(key)会根据字典的key去查找并删除键值对,并返回value值,但是如果字典中没有该key则会默认返回错误,但是可以修改返回值。
dic = {'name':'王帆','age':18}
print(dic.pop('age'))
print(dic)
#运行结果:
#18
#{'name': '王帆'}
当输入的key不在字典中时字典不会被操作,程序运行默认报错,但我们可以修改返回值不报错。
dic = {'name':'王帆','age':18}
print(dic.pop('aa','字典中没有该key'))
print(dic)
#运行结果:
#字典中没有该key
#{'name': '王帆', 'age': 18}
2.popitem()
popitem(),在python3.5之前是随机删除字典中的一个键值对,在python3.5之后是删除最后一个键值对
dic = {'name':'王帆','age':18}
dic.popitem()
print(dic)
#运行结果
#{'name': '王帆'}
3.clear
清空整个字典
dic = {'name':'王帆','age':18}
dic.clear()
print(dic)
#运行结果
#{}
4.del
通用del方法,可根据寻找key值删除键值对,也可以从内存上删除整个字典
dic = {'name':'王帆','age':18}
del dic['age']
print(dic)
#运行结果:{'name': '王帆'}
dic = {'name':'王帆','age':18}
del dic #从内存上删除整个dic
字典的改方法
字典改方法主要通过直接更改或更新
# 改
# dic = {"name":"jin","age":18,"sex":"male"}
# dic2 = {"name":"alex","weight":75}
# dic2.update(dic) # 将dic所有的键值对覆盖添加(相同的覆盖,没有的添加)到dic2中
# print(dic2)
字典的查方法
# value1 = dic["name"] # 没有会报错
# print(value1)
#
# value2 = dic.get("djffdsafg","默认返回值") # 没有可以返回设定的返回值
# print(value2)
python基础数据类型--dict 字典的更多相关文章
- Python - 基础数据类型 dict 字典
字典简介 字典在 Python 里面是非常重要的数据类型,而且很常用 字典是以关键字(键)为索引,关键字(键)可以是任意不可变类型 字典由键和对应值成对组成,字典中所有的键值对放在 { } 中间,每一 ...
- Python基础数据类型之字典
基础数据类型之字典 ps:数据类型划分:可变数据类型和不可变数据类型. 不可变数据类型:元组(tupe).布尔值(bool).整数型(int).字符串(str).不可变数据类型也称为可哈希. 可变 ...
- python基础(六)dict字典和文件操作open
字典dict 使用key来标注value的数据类型,key和value是一一对应的.在字典中key是唯一的,所以字典也是无序的. #定义一个字典 dict = { 'name' : 'sylar', ...
- python基础数据类型之字典的操作
一. 字典的简单介绍字典(dict)是python中唯一的一个映射类型.他是以{ }括起来的键值对组成. 在dict中key是唯一的. 在保存的时候, 根据key来计算出一个内存地址. 然后将key- ...
- Python基础数据类型-字典(dict)
Python基础数据类型-字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版本的哟 ...
- 『Python基础-10』字典
# 『Python基础-10』字典 目录: 1.字典基本概念 2.字典键(key)的特性 3.字典的创建 4-7.字典的增删改查 8.遍历字典 1. 字典的基本概念 字典一种key - value 的 ...
- Python基础知识(五)------字典
Python基础知识(四)------字典 字典 一丶什么是字典 dict关键字 , 以 {} 表示, 以key:value形式保存数据 ,每个逗号分隔 键: 必须是可哈希,(不可变的数据类型 ...
- Python 入门之Python基础数据类型及其方法
Python 入门之Python基础数据类型 1. 整型:int 用于计算,用于比较 (在赋值的时候先执行等号右边的内容) 1.1 整数的加 a = 10 b = 20 print(a + b) 结果 ...
- 图解python | 基础数据类型
作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/56 本文地址:http://www.showmeai.tech/article-det ...
随机推荐
- Python通过pip方式安装第三方模块的两种方式
一:环境 python3.6 windows 10 二:常用命令 如果直接执行pip命令报错,说明pip不在path环境变量中 解决方法: python -m pip list 以下默认可直接使用pi ...
- Linux 下RPM打包制作流程
原文地址:https://www.cnblogs.com/postgres/p/5726339.html 开始前的准备 安装rpmbuild软件包 yum -y install rpm-build 生 ...
- Centos7之Systemd(Service文件)详解
一.开机启动 对于那些支持 Systemd 的软件,安装的时候,会自动在/usr/lib/systemd/system目录添加一个配置文件. 如果你想让该软件开机启动,就执行下面的命令(以httpd. ...
- 我的微信小程序第一篇(入门)
前言 微信小程序出来已经有一段时间了,已经有很多大牛都写过相关教程了,那么我为啥还要写这篇文章呢?其实仅仅是个人对微信开发的一个兴趣吧,觉得是个很有意思的事情,后面有时间可能会发更多关于小程序的文章, ...
- elasticsearch数据输入和输出
Elastcisearch 是分布式的 文档 存储.它能存储和检索复杂的数据结构–序列化成为JSON文档–以 实时 的方式. 换句话说,一旦一个文档被存储在 Elasticsearch 中,它就是可以 ...
- 项目笔记-SC01
项目启动已有两周,从分析需求到系统设计,文档性工作比较多,只是文档参考比较少,相对的标准就不好界定了. 计划开发时间理论上是按部就班的,没什么变化,可能真正进入开发阶段才会遇到一些问题吧,有些问题就是 ...
- python 实现快速排序
一.快排思想 快速排序可以理解为是对冒泡排序的一种改进,把一组数,按照初始选定的标杆(参照数), 分别从两端开始排序,左端'i'只要小于标杆(参照数)的数,右端'j'只要大于标杆(参照数)的数, i- ...
- 我们为什么要使用List和Set(List,Set详解)
1.集合概述 类图 集合和数组的区别? 集合基本方法 集合特有的遍历方式? public static void main(String[] args) { //创建集合对象 Collection c ...
- Eclipse启动错误JVM terminated. exit code 1解决方法
现象: 前一天eclipse还用得好好的,但今天就不能用了,怎么回事? 解决方案: 请先参考其它网络资料:http://www.baidu.com/s?wd=eclipse+jvm+terminate ...
- 福州大学软件工程1816 | W班 第6次作业WordCount成绩排名
作业链接 WordCount进阶需求 评分细则 本次个人项目分数由两部分组成(博客分满分40分+程序得分满分60分) 博客评分细则(满分60,最终折算为40分) 在文章开头给出结对同学的博客链接.本作 ...