python中dic_python之dic {字典}(重要指数*****)

1. 什么是字典

{'name': '汪峰', 'age': 18} '键':'值' 别的语言键值对数据

键: 必须是可哈希(不可变的数据类型),并且是唯一的

值: 任意

可以保存任意类型的数据

字典是无序的

python3.6版本以上,默认定义了顺序,python3.5以下是随机显示

不能进⾏切片⼯作. 它只能通过key来获取dict中的数据

字典是可变的

2. 字典能干什么

字典可以存储大量数据,字典比列表还要大

字典在查找值的时候很方便快速

字典能够将数据进行关联

有明确对应关系的时候推荐使用字典,字典一定要整明白,很重要

目前所学的字典是不能转换的

缺点:

字典比较消耗内存 最常用的:字符串 列表 字典

3. 字典怎么用: 增、删、改、查

3.1 增

方法一: 直接增

dic["键"] = "值"

例题:

dic['name'] = '汪峰'

dic['age'] = 18

print(dic)

结果:

{'name': '汪峰', 'age': 18}

方法二:setdefault() 无则添加,有则不变

先去字典查看要添加的键存不存在

如果字典中存在就不添加,反之添加

dic.setdefault("键","值")

例题:

s1 = dic.setdefault('王菲')

# 输出结果

# {'王菲': None}

dic.setdefault('a','aaa')

print(dic)

一句话总结

dic["键"] = "值"

dic.setdefault("键","值") # 键不存在就添加,存在就不填加.

3.2 删

没有remove

方法一:pop('键') 通过键删除,具有返回值,返回的是被删除的值

pop("键")

方法二: del dic 删除整个字典

del dic

方法三: del dic['键'] 删除指定的键值对

del dic["键"]

方法四: dic.clear() 清空 删除整个字典中的键值对

dic.clear()

一句话总结

pop("键")

del dic["键"]

dic.clear() 清空

3.3 改

方法一: dic["键"] = "值" 直接改

dic["键"] = "值"

例题:

dic = {'a':'b','b':'c'}

dic['b'] = '这是新值' 有则改之无则添加

方法二: update({'键':值,'键':值})

update后面括号里面的级别高,会被前面的中相同的key对应的值覆盖

没有的话会填加

dic.update({"a":1,"b":1})

一句话总结

dic["键"] = "值"

dic.update({"a":1,"b":1})

3.4 查

字典的查询只能通过键获取值,不能通过值获取键

方法一: get('键','可以自己指定内容') 不存在返回的是None获取值的时候可以指定返回的内容,键不存在的时候不报错

例题:

dic = {"a":1}

dic["a"] += 5 # 给键a的值加5

dic.get("a") # 获取a的值

print(dic)

'''

输出结果

{'a': 6}

'''

方法二: dic["键"] 获取值的时候可以指定返回的内容,键不存在的时候就报错

例题:

dic = {1:2,"a":"a1"}

print(dic["c"])

'''

输出结果

报错,没有这个键

'''

方法三: dic.setdefault("键")

例题:

dic = {"a":1}

b = dic.setdefault('a')

print(b)

'''

输出结果

1

'''

一句话总结

dic["键"]

get('键','可以自己指定内容')

dic.setdefault("键")

3.5 其他的方法

for循环-获取字典的键的两种方法

方法一:

for k in dic:

print(k,dic[k]) #这里需要在打印的时候获取k的值

例题:

dic = {1:2,"a":"a1"}

for i in dic: # for循环字典的时候打印的是字典的键

print(i,dic[i])

'''

输出结果

1

a

'''

方法二:

for k in dic.keys():

print(k) # 这里在打印的时候不要指定

例题:

dic = {1:2,"a":"a1"}

for v in dic.keys():

print(v)

'''

输出结果

1

a

'''

三种模式:

dic.keys() -- 返回的是一个高仿列表 -- 没有索引

dic.values() -- 返回的是一个高仿列表 -- 没有索引

dic.items() -- 返回的是一个高仿列表,列表里存放的是元组类型元组第一个是键,第二个元素是值

3.6 解构

方法:

a,b = b,a --- 交换的是指向

a,b = 1,2

a,b = (45,6)

a,b = [1,4]

a,b = {"s":1,"a":1} # 字典拆包后的结果是键赋值给了a和b的变量

例题:

a = 1

b = 2

print("is a",id(a))

print("is b",id(b))

a,b = b,a

print("is a",id(a))

print("is b",id(b))

a,_,c = "你好啊"

print(a,c)

# 结果:你啊

a,b = ("1","2")

print(a,b)

# 结果:1,2

a,b = ["4","5"]

print(a,b)

# 结果:4,5

a,b = {"a":1,"b":2,}

print(a,b)

# 结果a b

3.7 enumerate() 枚举

给你要迭代对象,加一个序号 默认是从0开始,可以自己指定

例题:

li = [1,2,3,4,54]

for i,k in enumerate(li): # enumerate 第二个参数默认不写就是0 -- 枚举

print(i,k)

'''

输出结果

0 1

1 2

2 3

3 4

4 54

'''

练习题:

题目: 有字典dic = {"电脑":15000,"手机":8000,"耳机":4000,"老婆":1111},现需求是显示如下列表:

1 电脑

2 手机

3 耳机

4 老婆

方法一:

dic = {"电脑":15000,"手机":8000,"耳机":4000,"老婆":1111}

count = 1

for i in dic:

print(count,i)

count += 1

方法二:

for k,v in dic.enumerate(dic): # enumerate默认添加的序号从0开始,正好是索引的那个值

print(k+1,v)

'''

输出结果

1 电脑

2 手机

3 耳机

4 老婆

'''

3.8 字典的嵌套:

查找的字典的嵌套时,按照键去一层一层的查找

例题:

dic = {

101:{1:["周杰伦","林俊杰"],2:{"汪峰":["国际章",{"前妻1":["熊大","熊二"]},

{"前妻2":["葫芦娃","木吒"]}]}},

102:{1:["李小龙","吴京","李连杰"],2:{"谢霆锋":["张柏芝","王菲"]},

3:["alex","wusir","大象","奇奇"]},

103:{1:["郭美美","干爹"],2:{"王宝强":{"马蓉":"宋哲"}}},

201:{1:["凹凸曼","皮卡丘"],2:{"朱怼怼":{"杨幂":"刘恺威"}}}

}

1. 找:葫芦娃

print(dic[101][2]["汪峰"][2]["前妻2"][0])

2. 找:大象

print(dic[102][3][2])

3. 找:宋哲

print(dic[103][2]["王宝强"]["马蓉"])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/532060.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python装饰器带参数函数二阶导数公式_一文搞定Python装饰器,看完面试不再慌

本文始发于个人公众号:TechFlow,原创不易,求个关注今天是Python专题的第12篇文章,我们来看看Python装饰器。一段囧事差不多五年前面试的时候,我就领教过它的重要性。那时候我Python刚刚初学乍练,看完了廖雪…

centos7源码安装mysql报错_CentOS7 下源码安装MySQL数据库 8.0.11

本文主要向大家介绍了CentOS7 下源码安装MySQL数据库 8.0.11,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。CentOS7 下源码安装MySQL 8.0.11系统环境:CentOS7, 内核:Linux 3.10.0-862.el7.x86_64如果…

python全排列问题_Python基于回溯法子集树模板解决全排列问题示例

本文实例讲述了Python基于回溯法子集树模板解决全排列问题。分享给大家供大家参考,具体如下:问题实现 a, b, c, d 四个元素的全排列。分析这个问题可以直接套用排列树模板。不过本文使用子集树模板。分析如下:一个解x就是n个元素的一种排列&a…

file js new 传到后台_js 图片上传传给后台的3种格式

$("#imgfile").change(function () {var formData new FormData();$.each($(#imgfile)[0].files, function (i, file) {formData.set(idcard, file); //idcard 字段 根据自己后端接口定});//processData: false, contentType: false,多用来处理异步上传二进制文件。…

usbserialcontroller驱动安装不了_win10-有NVIDIA独显提示未安装控制面板的离线安装方式...

最近越来越多的用户反映NVIDIA显卡驱动设置不了啦,找不到NVIDIA显卡的控制面板。 也不知道NVIDIA在什么版本开始驱动安装包就不自带NVIDIA显卡控制面板了。 全新安装的显卡驱动就没有控制面板;或者Windows 10自带更新了显卡新版驱动后导致没有。 每次带N…

mysql 多实例 独立配置文件_三、安装配置多实例MYSQL5.6-多独立配置文件方法

三、安装配置多实例MYSQL5.6-多独立配置文件方法1、准备工作检查操作系统版本、内核版本、selinux是否关闭、防火墙策略、IP地址、主机名配置、host表配置、yum配置上传cmake、mysql5.6软件包具体步骤参考源码安装mysql-单实例配置文档2、安装cmake软件2.1 安装编译软件环境[[e…

python做什么模型_主题模型初学者指南[Python]

引言近年来涌现出越来越多的非结构化数据,我们很难直接利用传统的分析方法从这些数据中获得信息。但是新技术的出现使得我们可以从这些轻易地解析非结构化数据,并提取出重要信息。主题模型是处理非结构化数据的一种常用方法,从名字中就可以看…

python实现队列_Python学习教程:用队列实现栈

接着上一期跟大家说的用栈实现队列,这期的Python学习教程跟大家讲用队列实现栈题目:使用队列实现栈的下列操作:push(x) – 元素 x 入栈pop() – 移除栈顶元素top() – 获取栈顶元素empty() – 返回栈是否为空Implement the following operati…

vue 点击li 中的img 怎么不冒泡_Vue全解

一.Vue实例内存图:1.把Vue的实例命名为vm,vm对象封装了对视图的所有操作包括数据读写、事件绑定、DOM更新2.vm的构造函数是Vue,按照ES6的说法vm所属的类是Vue3.options是new Vue的参数一般称为选项或构造选项1.options里面有什么英文文档搜op…

python布局管理_Python基础=== Tkinter Grid布局管理器详解

本文转自:https://www.cnblogs.com/ruo-li-suo-yi/p/7425307.html 箬笠蓑衣Grid(网格)布局管理器会将控件放置到一个二维的表格里。主控件被分割成一系列的行和列,表格中的每个单元(cell)都可以放置一个控件。注意:不要试图在一个主…

python面向对象类_python面向对象-类和对象

一. 类的定义class类名():代码#定义类classWasher():defwash(self):print("洗衣服")注意:类名要满足标识符命名规则,同时遵循大驼峰命名习惯。二. 创建对象对象名 类名()#创建对象w Washer()#调用方法w.wash() #洗衣服三. selfself指的是调用…

vant部署_vant ui rem配置流程

参考地址 https://www.cnblogs.com/WQLong/p/7798822.html1.下载lib-flexible使用的是vue-cliwebpack,通过npm来安装的npm i lib-flexible --save2.引入lib-flexible在main.js中引入lib-flexibleimport ‘lib-flexible/flexible‘3.设置meta标签通过meta标签&#…

terminal services 找不到_电脑局域网中查看不到其他计算机或无法连接的解决办法...

在办公环境中,电脑经常需要打开网络,进行一些文件共享的操作,但是有时会出现很多无法共享的情况,之前有一篇文章讲过解决办法,今天再来将一下具体无法共享的错误提示和相对应的处理方法,主要有以下几种情况…

如何避免mysql回表查询_mysql如何避免回表查询

《迅猛定位低效SQL?》留了一个尾巴:select id,name where name‘shenjian‘select id,name,sexwhere name‘shenjian‘多查询了一个属性,为何检索过程完全不同?什么是回表查询?什么是索引覆盖?如何实现索引…

python爬虫开发数据库设计入门经典_Python3实现的爬虫爬取数据并存入mysql数据库操作示例...

本文实例讲述了Python3实现的爬虫爬取数据并存入mysql数据库操作。分享给大家供大家参考,具体如下:爬一个电脑客户端的订单。罗总推荐,抓包工具用的是HttpAnalyzerStdV7,与chrome自带的F12类似。客户端有接单大厅,罗列…

python中multiply函数_python中numpy库内multiply()、dot()和 * 三种乘法运算的区别小计...

首先,导入函数包:import numpy as np1.np.multiply()函数:数组:(点对点)对应位置元素相乘矩阵:对应位置元素相乘示例:A np.array([[1,2],[3,4]])B np.array([[1,3],[2,4]])A_mat np.mat(A)B_mat np.mat(B)A_B_mult…

安装python3.6.1_如何安装python3.6.1/

如何在win7下安装Python及配置1、首先,从搜索python官载适合自己电脑python版本。2标右击桌面“计算机”择打开菜单栏中的性”。3、WindowsXP时,在新弹出的属性窗口,选择“高级”->“环境变量”。Windows7是,在新弹出的属性窗口…

编程入门python java和c语言_学习编程适不适合从Python入门?哪种语言更适合入门?...

本文对比了C语言和Python语言,分析它们作为编程入门语言各自的利弊,并给出了我推荐的编程学习道路。我本身已经入门了Python脚本语言,在进阶C语言和JAVA语言后,Python重学就轻松很多,几个小时就拾起了忘记的语法&#…

mysql 备份 一张表_mysql 备份表的一个方法

#--- start# 新建表create table sp2_match_comment_tmp like sp2_match_comment; # 这种方式 外键索引,触发器不会在新表中有,要自己添加LOCK TABLES sp2_match_comment write, sp2_match_comment AS smc2 read, sp2_match_comment_tmp write;# 导出最新…

springmvc的工作原理_SpringMVC工作原理

1 简介SpringMVC框架是以请求为驱动,围绕Servlet设计,将请求发给控制器,然后通过模型对象,分派器来展示请求结果视图。其中核心类是DispatcherServlet,它是一个Servlet,顶层是实现的Servlet接口。2 运行原理…