五、python沉淀之路--字典
一、
1、根据序列,创建字典,并指定统一的值
v = dict.fromkeys(["k1",1234,""],222)
print(v)
{'k1': 222, 1234: 222, '': 222}
2、根据key 获取值,key不存在时,报错;get方法,存在时返回对应值,不存在时返回后面代替值,不会报错 。
dic = {
"k1":'v1',
"k2":'v2'
}
v= dic.get('k3',1111)
print(v)
1111
3、pop:删除并返回值,如果不存在时,返回后面备用的值,不会报错
dic = {
"k1":'v1',
"k2":'v2'
}
v1 = dic.pop('k3',90)
print(dic,v1)
v = dic.pop('k1',90)
print(dic,v)
{'k1': 'v1', 'k2': 'v2'} 90
{'k2': 'v2'} v1
4、popitem的用法:同时删除键和值
dic = {
"k1":'v1',
"k2":'v2'
}
k,v = dic.popitem()
print(k,v,dic)
k2 v2 {'k1': 'v1'}
5、setdefault的用法
已存在,不设置,获取当前key对应的值
不存在,设置,获取当前key对应的值
dic = {
"k1":'v1',
"k2":'v2'
}
v = dic.setdefault('k111','')
print(dic,v)
v1 = dic.setdefault('k1','')
print(dic,v1)
{'k1': 'v1', 'k2': 'v2', 'k111': ''} 123
{'k1': 'v1', 'k2': 'v2', 'k111': ''} v1
6、update更新,有则更新,无则添加
dic = {
"k1":'v1',
"k2":'v2'
}
dic.update({"k1":'',"k2":'',"k3":''})
print(dic)
dic.update(k1=99,k2=88,)
print(dic)
{'k1': '', 'k2': '', 'k3': ''}
{'k1': 99, 'k2': 88, 'k3': ''}
7、 keys() values() items() get update
二、
1、基本结构:键值对
info = {
"k1": "v1", # 键值对
"k2": "v2"
}
2、字典的value可以值任意值。
info = {
"k1": 18,
"k2": True,
"k3": [
11,
[],
(),
22,
33,
{
'kk1': 'vv1',
'kk2': 'vv2',
'kk3': (11,22),
}
],
"k4": (11,22,33,44)
}
3、字典:无序。通过多打印几次就可以看到,每次顺序不一样
4、布尔值(1,0)【当key值中已经有0或1存在时】、列表、字典不能作为字典的key。
info ={
2: 'asdf',
"k1": 'asdf',
True: "",
# [11,22]: 123 列表可变,固不能作为key
(11,22): 123,
# {'k1':'v1'}: 123 字典可变,固不能作为key
}
5、字典可以通过索引key 键来找到对应的值
6、字典支持del的方式来删除,
dic = {
"k1":'v1',
"k2":'v2'
}
del dic["k1"]
print(dic)
{'k2': 'v2'}
7、字典支持for循环,配合一起用的有: .keys() .values() .items()
dic = {
"k1":'v1',
"k2":'v2',
"k3":'v3'
}
for item in dic:
print(item)
for i in dic.keys():
print(i)
for n in dic.values():
print(n)
for k,v in dic.items():
print(k,v)
k1
k2
k3
k1
k2
k3
v1
v2
v3
k1 v1
k2 v2
k3 v3
补充:
enumerate 的用法,以及与len range for 配合使用
- enumerate()是python的内置函数
- enumerate在字典上是枚举、列举的意思
- 对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值
- enumerate多用于在for循环中得到计数
li = ["我","要","测","试"]
for n in range(len(li)):
print(n) for index,item in enumerate(li):
print(index,item)
for index,item in enumerate(li,1):
print(index,item
0
1
2
3
0 我
1 要
2 测
3 试
1 我
2 要
3 测
4 试
五、python沉淀之路--字典的更多相关文章
- 十五、python沉淀之路--eval()的用法
一.eval函数 python eval() 函数的功能:将字符串str当成有效的表达式来求值并返回计算结果. 语法:eval(source[, globals[, locals]]) -> v ...
- Python成长之路 — 字典
一.字典的定义与创建 字典是Python中唯一内建的映射类型.你可以将其想象成书本的目录,章节名称代表"key",页码则代表"value".书本的目录本质上是也 ...
- 十六、python沉淀之路--迭代器
一.迭代器 1.什么是迭代器协议:对象必须提供一个next方法,执行该方法要返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代(只能往后走,不能往前走). 2.可迭代对象:实 ...
- 七、python沉淀之路--集合
一. 1.字符串转集合 s = 'hello' se = set(s) print(se) {'e', 'o', 'h', 'l'} 2.列表转集合 l1 = ['hello','python','n ...
- 六、python沉淀之路--int str list tuple dict 重点总结
一.数字int(..)二.字符串replace/find/join/strip/startswith/split/upper/lower/formattempalte = "i am {na ...
- 十八、python沉淀之路--生成器
一.生成器 生成器总结:语法上和函数类似:生成器函数和常规函数几乎是一样的.他们都是使用def语句进行定义,差别在于生成器使用yield语句返回一个值,而常规函数使用return语句返回一个值.自动实 ...
- 十二、python沉淀之路--内置函数
1.abs函数,求绝对值. a = abs(-3) print(a) 返回:3 2.all函数:判断是否是可迭代对象. 官方解释:Return True if bool(x) is True for ...
- 九、python沉淀之路--递归、全局变量、局部变量、作用域
一.递归 1.递归函数,同时使用嵌套,并且是将别的函数作用于调用函数里面 例1 num = [1,2,3,4,5] def add_one(i): return i+1 def reduce(i): ...
- 二、python沉淀之路~~字符串属性(str)
1.capitalize的用法:即将输出字符串首字母大写 test = "heLLo" v = test.capitalize() print(v) 结果:Hello. 2.cas ...
随机推荐
- jQuery开发入门
jQuery是JavaScript库中的优秀一员. 下载完jQuery框架文件jquery-1.9.0.js 后,不需要任何安装,仅需使用<script>文件导入标记,将该框架文件导入页面 ...
- 纯代码编写qt登录界面(转)
1. 新建Qt Widgets Application,项目名称为login1,在类信息页面保持类名和基类为MainWindow和QMainWindow不变,取消选择创建界面选项,如下图所示. ...
- 关于dispatch_semaphore的使用
dispatch_semaphore是GCD用来同步的一种方式,与他相关的共有三个函数,分别是 dispatch_semaphore_create,dispatch_semaphore_signal, ...
- shell set 命令
用set命令可以设置各种shell选项或者列出shell变量.单个选项设置常用的特性.在某些选项之后-o参数将特殊特性打开.在某些选项之后使用+o参数将关闭某些特性,不带任何参数的set命令将显示sh ...
- uCOS-II的学习笔记(共九期)和例子(共六个)
源:uCOS-II的学习笔记(共九期)和例子(共六个) 第一篇 :学习UCOS前的准备工作http://blog.sina.com.cn/s/blog_98ee3a930100w0eu.html 第二 ...
- 四、golang内置函数、递归、闭包、数组切片和map
一.总体内容 1.内置函数.递归函数.闭包 2.数组和切片 3.map数据结构 4.package介绍 一.内置函数 注意:值类型用new来分配内存,引用类型用make来分配内存 1.close:主要 ...
- 中文乱码问题(页面乱码,eclipse乱码,请求响应乱码)
1.首先在开发工具eclipse中设置工作空间和文件编码格式,详情参见 http://www.cnblogs.com/lixiang1993/p/7345161.html 2.在eclipse的安 ...
- HDU 2419 Boring Game(并查集+map)
感觉做得有点复杂了,但是AC了还是...爽... 题意:给你n个点每个点有一个价值,接下来有m条边,然后是q个操作,每个操作有三种情况: F X K:寻找与X点直接或间接相连的不小于价值K的最小价值, ...
- hdu 5877 Weak Pair dfs序+树状数组+离散化
Weak Pair Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Prob ...
- Pycharm更换pip源为国内
Python里的pip是官方自带的源,国内使用pip安装的时候十分缓慢,所以最好是更换成中国国内的源地址. 目前国内靠谱的 pip 镜像源有: 清华: https://pypi.tuna.tsingh ...