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]["王宝强"]["马蓉"])
python之dic {字典}(重要指数*****)的更多相关文章
- python 浅谈字典dict
一.字典简介 字典(dict)是python中唯一的映射类型,他是以{ }括起来的键值对组成,在dict中的key是唯一的.在保存的时候,根据key来计算出一个内存地址.然后将key-value保存在 ...
- python之路--字典
一. 字典 字典是以key:value的形式来保存数据的,用{}表示 字典的增删改查 字典的增加 dic = {"意大利": "李云龙", "美国&q ...
- python 列表,字典,元组,字符串,常用函数
飞机票 一.列表方法 1.ls.extend(object) 向列表ls中插入object中的每个元素,object可以是字符串,元组和列表(字符串“abc”中包含3个元组),相当于ls和object ...
- python创建有序字典及字典按照值的大小进行排序
有序字典 在Python中,字典类型里面的元素默认是无序的,但是我们也可以通过collections模块创建有序字典 # -*- coding:utf-8 -*- # python有序字典需导入模块c ...
- python全栈 字典数据类型相关知识及操作
python 全栈开发 一.字典 1. 字典的概念: 字典 : dict 用 {} 来表示, 键位值数据. { key , value } 具有唯一性. 键:都必须是可哈希的 不可变 ...
- python 数据类型 之 字典
python 3.6.5字典的特性和定义定义:{'key_1':vlaue_1,'key_2':value_2}1.键与值用冒号 : 分开2.项与项 用 , 分开 特性1.可以存放多个值,可以不唯一, ...
- Python中的字典与集合
今天我们来讲一讲python中的字典与集合 Dictionary:字典 Set:集合 字典的语法: Dictionary字典(键值对) 语法: dictionary = {key:value,key: ...
- 百万年薪python之路 -- 字典(dict)
1.字典(dict)-- dict关键字 字典(dict)是python中唯⼀的⼀个映射类型.他是以{ }括起来的键值对组成. 字典中逗号分隔叫作一个元素 字典是无序的 key必须是不可变 ...
- Python如何让字典保持有序
问题: Python如何让字典保持有序 ? 解决方案: 使用collections.OrderedDict代替Dict. 验证程序: from collections import OrderedDi ...
随机推荐
- Redis缓存雪崩、缓存穿透、缓存击穿、缓存降级、缓存预热、缓存更新
Redis缓存能够有效地加速应用的读写速度,就DB来说,Redis成绩已经很惊人了,且不说memcachedb和Tokyo Cabinet之流,就说原版的memcached,速度似乎也只能达到这个级别 ...
- 洛谷 - P2283 - 多边形 - 半平面交
https://www.luogu.org/problemnew/show/P2283 需要注意max是求解顺序是从右到左,最好保证安全每次都清空就没问题了. #include<bits/std ...
- CTP Release() 的注意问题
测试时发现CThostFtdcMdSpi有个比较严重的问题,就是使用Release()退出清理对象时 会出现死机,并且频率很高,怎样解决? 答:请参考以下代码的释放顺序. template <c ...
- git 忽略 Pycharm 中的 workspace.xml 文件
.gitignore 中要写上 workspace.xml 如果已经不幸之前commit workspace.xml 的话,必须执行以下命令 $ git rm --cached .idea/works ...
- 新建Podfile命令
接下来,你需要建立一个主工程.建立成功以后,再次启动终端, 利用cd命令进入到工程文件夹内,此时需要创建一个特殊的文本文件,命令如下: 命令: touch Podfile 创建 命令: open -e ...
- (转)java 线程同步
转自 http://blog.csdn.net/column/details/java-thread.html http://leo-faith.iteye.com/blog/177779 http: ...
- B - Halloween Costumes
#include <iostream> #include <algorithm> #include <cstring> #include <cstdio> ...
- shell学习(7)- linux权限管理及修改权限命令chmod
文件系统权限基本介绍 1.文件基本权限 总共10个字符,可以分为四组, 第一组,就一个字符-,代表是文件类型,是一个常规文件,还有其他的类型如下所示 d--目录 l--符号链接,软连接 c--字符专门 ...
- python连接mysql时连接不到test文件夹怎么办
最新版mysql安装后默认是没有test文件夹的,这时候需要我们自己创建一个test文件夹, 文件默认路径如下 C:\ProgramData\MySQL\MySQL Server 5.7\Dat ...
- MongoDB 删除数据
删除mongodb集合中的数据可以使用remove()函数.remove()函数可以接受一个查询文档作为可选参数来有选择性的删除符合条件的文档.remove()函数不会删除集合本身,同时,原有的索引也 ...