python课堂整理6---字典
一、字典 dict
info = {"k1" : "v1", "k2" : "v2"}
以键值对形式组成字典
字典里的value可以是任何值
列表不能作为字典的key
字典可以作为字典的key
元组可以作为字典的key
布尔值可以作为字典的key 但是重复的key只会显示一个,True容易和数字1重复,需注意!
字典是无序的
字典支持索引取值,但不支持切片
info = {
"k1": 18,
2 : True,
"k3": [
"li",
[],
(),
22,
33,
{
"kk1": "vv1", "kk2": "vv2", "kk3": (11, 22)
}
],
"k4": (11, 22, 33, 44)
}
v = info["k1"]
print(v)

info = {
"k1": 18,
2 : True,
"k3": [
"li",
[],
(),
22,
33,
{
"kk1": "vv1", "kk2": "vv2", "kk3": (11, 22)
}
],
"k4": (11, 22, 33, 44)
}
v = info["k3"][5]["kk3"][0]
print(v)

注意:通过索引key值去找value的话,如果该key不存在,会报错。
支持del删除
del info['k1']
支持for 循环
1.输出所有keys
info = {"k1": "v1", "k2": "v2"}
for item in info.keys():
print(item)

2.输出所有values值
info = {"k1": "v1", "k2": "v2"}
for item in info.values():
print(item)

3. 同时输出keys和values:
info = {"k1": "v1", "k2": "v2"}
for item in info.keys():
print(item, info[item])

或(这个更重要)items 方法
info = {"k1": "v1", "k2": "v2"}
for k, v in info.items():
print(k, v)
二、字典的魔法
1. 该方法和前面相同不再赘述:clear copy (浅拷贝)
2. 根据序列(可以是列表、元组、字符串等),创建字典,并指定统一的值
v = dict.fromkeys(["k1", 123, "999"], "爱你")
print(v)

3. get方法,如果传入的key不存在,默认返回None,也可以指定返回值
dic = {"k1": "v1"}
v = dic.get("k1")
v2 = dic.get("大白", "不存在")
print(v, v2)

4. pop删除,当要删除的key不存在时,返回指定内容
dic = {"k1": "v1",
"k2": "v2"
}
v1 = dic.pop("k1")
v2 = dic.pop("k3", "不存在哦亲")
print(dic)
print(v1)
print(v2)

5. 随机删除一个,返回被删除的键和值
dic = {"k1": "v1",
"k2": "v2"
}
v = dic.popitem()
print(dic, v)

或
dic = {"k1": "v1",
"k2": "v2"
}
k, v = dic.popitem()
print(dic, k, v)

6.设置值,如果已经存在,不设置,获取当前key对应的值
如果不存在,设置,获取当前key对应的值
dic = {"k1": "v1",
"k2": "v2"
}
v = dic.setdefault("大白", "123")
v2 = dic.setdefault("k1", "11111111")
print(dic, v)
print(dic, v2)

7. 更新字典
dic = {"k1": "v1",
"k2": "v2"
}
dic.update({"k1": "11111", "k3": "liu"})
print(dic)

或者
dic = {"k1": "v1",
"k2": "v2"
}
dic.update(k1=123, k3 = 345)
print(dic)

重要:keys() values() items() get update
补充:
in dic 默认找的是key
in dic.values() 能找到values
dic = {"k1": "v1",
"k2": "v2"
}
v = "k1" in dic
v2 = "v1" in dic.values()
print(v)
print(v2)

布尔值:在内存中就表现为0和1
转换:bool(...)
以下情况为假:None "" () [] {} 0 ====>False
python课堂整理6---字典的更多相关文章
- python课堂整理19----迭代器和生成器
一.概念 • 迭代器协议: 对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么引起一个stopIteration异常,以终止迭代(只能往后走,不能往前退) • 协议是一种约定,pyt ...
- python课堂整理18---文件操作(下)
一.b模式,字节方式(二进制的单位),rb wb ab f = open('test.py', 'rb', encoding = 'utf-8') 报错,因为用了b模式,就不能再指定编码格式了,已经指 ...
- python课堂整理16---内置函数
1. abs :求绝对值 print(abs(-1)) 2. all()传入一个可迭代对象,对该对象进行bool值运算,若都为True 就返回True,有一个为假,就返回False print(all ...
- python课堂整理15---map, filter,reduce函数
一.map函数 处理序列(可迭代对象)中的每一个元素,得到的结果是一个‘列表’(其实是个迭代器),该‘列表’元素个数及位置与原来一样 理解下面这段代码: num_l = [1, 2, 4, 6] de ...
- python课堂整理10---局部变量与全局变量
一.局部变量与全局变量 1. 没有缩进,顶头写的变量为全局变量 2. 在子程序里定义的变量为局部变量 3. 只有函数能把变量私有化 name = 'lhf' #全局变量 def change_name ...
- python课堂整理9---函数1
函数 一. 函数就是为了完成某一个特定的功能 形式参数不占运行空间,只有传入实参后才占,用完立刻释放空间. 函数一遇到 return 就结束掉了 函数名() :运行函数,有返回值的话用变量承接 def ...
- python课堂整理8---字符串格式化
一.字符串格式化(% 和 format) 1. % s 主要接收字符串类型,也可以接收任意类型 tp1 = "i am %s my hobby is alex" % 'lhf' ...
- python课堂整理7---集合
前面小节: sep 用来控制每个元素间的间隔符号 print("alex", "dabai", "liu", sep = "&qu ...
- python课堂整理4---列表的魔法
一.list 类, 列表 li = [1, 12, 9, "age", ["大白", "小黑"], "alex"] ...
随机推荐
- Ruby元编程:执行某个目录下的全部测试用例
目前手里有个测试项目各个feature的测试用例都放在对应的子目录下,虽然有自动化测试框架的帮助执行起来很方便,但是偶尔也有需要在本地执行某个feature的全部测试用例集合.因为本人对shell脚本 ...
- hadoop 数据抽取
#!/bin/bash if [ ! -z $2 ]; then start_time=$1 end_time=$2 else starttime=`date +%Y%m%d%H%M -d '-15 ...
- js&jq遇到的问题(不断更新中)
1.普通事件和事件绑定: 代码: 普通事件: var btn=document.getElementById('btn'); btn.onclick=function(){ alert("c ...
- SYN6101型 RS485子钟
SYN6101型 RS485子钟 产品概述 SYN6101型RS485子钟是由西安同步电子科技有限公司精心设计.自行研发生产的一套以通过RS485总线复接或串行与母钟连接的子钟,接收母钟发送来的时间 ...
- Spring的Bean的生命周期
一:生命周期执行的过程如下:1) spring对bean进行实例化,默认bean是单例.2) spring对bean进行依赖注入.3) 如果bean实现了BeanNameAware接口,spring将 ...
- Python装饰器和回调函数
1.装饰器 装饰器用来实现一种切面功能,即一些函数在调用前都必须实现的功能,比如用户是否登录,用户是否有权限这类需求,都很容易由装饰器来实现. import functools def log(fun ...
- 请给出linux中查看系统已经登录用户的命令?
w命令 第一行:当前系统运行了多久和系统负载 谁正在远程登录系统并且在干什么 [root@martin ~]# w 11:30:33 up 4 days, 18:10, 2 users, load a ...
- linux下安装Nginx1.16.0
因为最近在倒腾linux,想安装新版本的nginx,找了一圈教程没有找到对应的教程,在稍微倒腾了一会之后终于成功的安装了最新版. 服务器环境为centos,接下来是详细步骤: 安装必要依赖插件 yum ...
- kubernetes实战篇之dashboard搭建
系列目录 kubernetes dashboard是kubernetes官方提供的web管理界面,通过dashboard可以很方便地查看集群的各种资源.以及修改资源编排文件,对集群进行扩容操作,查看日 ...
- 戏说 .NET GDI+系列学习教程(一、Graphics类--纸)
Graphics类(纸) Graphics类封装一个GDI+绘图图面,提供将对象绘制到显示设备的方法,Graphics与特定的设备上下文关联. 画图方法都被包括在Graphics类中,在画任何对象时, ...