字典

字典是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 字典的更多相关文章

  1. Python - 基础数据类型 dict 字典

    字典简介 字典在 Python 里面是非常重要的数据类型,而且很常用 字典是以关键字(键)为索引,关键字(键)可以是任意不可变类型 字典由键和对应值成对组成,字典中所有的键值对放在 { } 中间,每一 ...

  2. Python基础数据类型之字典

      基础数据类型之字典 ps:数据类型划分:可变数据类型和不可变数据类型. 不可变数据类型:元组(tupe).布尔值(bool).整数型(int).字符串(str).不可变数据类型也称为可哈希. 可变 ...

  3. python基础(六)dict字典和文件操作open

    字典dict 使用key来标注value的数据类型,key和value是一一对应的.在字典中key是唯一的,所以字典也是无序的. #定义一个字典 dict = { 'name' : 'sylar', ...

  4. python基础数据类型之字典的操作

    一. 字典的简单介绍字典(dict)是python中唯一的一个映射类型.他是以{ }括起来的键值对组成. 在dict中key是唯一的. 在保存的时候, 根据key来计算出一个内存地址. 然后将key- ...

  5. Python基础数据类型-字典(dict)

    Python基础数据类型-字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版本的哟 ...

  6. 『Python基础-10』字典

    # 『Python基础-10』字典 目录: 1.字典基本概念 2.字典键(key)的特性 3.字典的创建 4-7.字典的增删改查 8.遍历字典 1. 字典的基本概念 字典一种key - value 的 ...

  7. Python基础知识(五)------字典

    Python基础知识(四)------字典 字典 一丶什么是字典 ​ dict关键字 , 以 {} 表示, 以key:value形式保存数据 ,每个逗号分隔 ​ 键: 必须是可哈希,(不可变的数据类型 ...

  8. Python 入门之Python基础数据类型及其方法

    Python 入门之Python基础数据类型 1. 整型:int 用于计算,用于比较 (在赋值的时候先执行等号右边的内容) 1.1 整数的加 a = 10 b = 20 print(a + b) 结果 ...

  9. 图解python | 基础数据类型

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/56 本文地址:http://www.showmeai.tech/article-det ...

随机推荐

  1. Kafka 入门三问

    目录 1 Kafka 是什么? 1.1 背景 1.2 定位 1.3 产生的原因 1.4 Kafka 有哪些特征 消息和批次 模式 主题和分区 生产者和消费者 broker 和 集群 1.5 Kafka ...

  2. WinForm 之 窗口最小化到托盘及右键图标显示菜单

    Form最小化是指整个Form都缩小到任务栏上,但是窗体以Form的标题栏形式显示在任务栏上, 若是想让Form以Icon的形式显示在任务栏右下角,则需要给Form添加一个NotifyIcon控件. ...

  3. Python全栈开发之路 【第四篇】:Python基础之函数

    本节内容 函数def: 1.位置参数,默认参数 2.位置参数,关键参数 3.如果参数中出现 *users,传递的参数就可以不再是固定的个数, 传过来的所有元素进行打包成元组 *args,**kwarg ...

  4. (Beta)Let's-版本测试报告

    测试中发现的Bug Version 2.0 Bug List 在无活动的活动列表下拉加载会崩溃 不能更改个人头像 用户和活动不显示头像 百度地图无法打开 在某些机型上软件装不上 图片加载有时不加载,有 ...

  5. ubuntu中搭建svn服务器步骤

    1.安装软件包: sudo apt-get install subversion 2.建立相关文件夹(这里svn放在home文件夹中) cd /home sudo mkdir svn cd /home ...

  6. 【转】Word之表格、图片的题注(抬头)自动编号

    问:word中的表格怎么自动插入题注(即表头的编号自动编号)? 答: 1首先搞清楚自动编号的意思.自动插入题注的意思是,在你在word中新建或者复制一个word表格的时候,表头的编号就自动生成了,而不 ...

  7. 18-vue-cli脚手架项目中组件的使用

    在webpack-simple模板中,包括webpck模板.一个.vue文件就是一个组件. 为什么会这样呢?因为webpack干活了!webpack的将我们所有的资源文件进行打包.同时webpack还 ...

  8. Git - 常见错误与解决方案

    1.windows使用git时出现:warning: LF will be replaced by CRLF 分析: windows中的换行符为 CRLF, 而在linux下的换行符为LF,所以在执行 ...

  9. 【Python3练习题 015】 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过多少米?第10次反弹多高?

    a = [100]  #每个‘反弹落地’过程经过的路程,第1次只有落地(100米) h = 100  #每个‘反弹落地’过程,反弹的高度,第1次为100米 print('第1次从%s米高落地,走过%s ...

  10. Azure系列2.1.11 —— CloudBlobContainer

    (小弟自学Azure,文中有不正确之处,请路过各位大神指正.) 网上azure的资料较少,尤其是API,全是英文的,中文资料更是少之又少.这次由于公司项目需要使用Azure,所以对Azure的一些学习 ...