五、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 ...
随机推荐
- deeplink
http://www.cnblogs.com/shadajin/p/5724117.html Deeplink,简单讲,就是你在手机上点击一个链接之后,可以直接链接到app内部的某个页面,而不是app ...
- 约瑟夫环的C语言数组实现
约瑟夫环问题的具体描述是:设有编号为1,2,……,n的n个(n>0)个人围成一个圈,从第1个人开始报数,报到m时停止报数,报m的人出圈,才从他的下一个人起重新报数,报到m时停止报数,报m的出圈, ...
- Linux软件包管理 RMP包管理
概述 RPM 包的命名一般都会遵守统一的命名规则,例如: httpd-2.2.15-15.el6.centos.1.i686.rpm 其中的各项代表的含义如下: httpd:软件包名. 2.2.15: ...
- java中类名.class, class.forName(), getClass()区别
Class对象的生成方式如下: 1.类名.class 说明: JVM将使用类装载器, 将类装入内存(前提是:类还没有装入内存),不做类的初始化工作.返回Class的对象 2.Cla ...
- 嵌入式boa服务器移植
开发板:EDUKIT-III实验箱,S3C2410+LINUX2.4,实验箱随箱光盘提供的Zimage,nor flash启动. 主机:ubnutn10.4LTS,arm-linux-gcc 2.95 ...
- Django-Ajax基础知识
Ajax准备知识:json 1.什么是json JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式. 它基于 ECMAScript (w3c ...
- apache2.4配置ssl
1,yum 安装openssl和openssl-devel,httpd-devel2,生成证书(也可以从公司的证书颁发机构获取): #建立服务器密钥 openssl genrsa -des3 > ...
- 20145230《java程序设计》第五次实验报告
20145230实验五 Java网络编程及安全 实验内容 掌握Socket程序的编写: 掌握密码技术的使用: 设计安全传输系统. 实验步骤 本次实验我负责编写客户端代码的编写,以下是我实验进行的步骤: ...
- MIPI DSI协议学习【转】
本文转载自:http://www.voidcn.com/blog/LoongEmbedded/article/p-6109759.html 1. MIPI DSI DSI:displayser ...
- 【简单dp】poj 1458 最长公共子序列【O(n^2)】【模板】
最长公共子序列可以用在下面的问题时:给你一个字符串,请问最少还需要添加多少个字符就可以让它编程一个回文串? 解法:ans=strlen(原串)-LCS(原串,反串); Sample Input abc ...