五、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 ...
随机推荐
- 关于Class.getResourceAsStream
Properties properties = new Properties(); properties.load(new InputStreamReader(CharactorTest.cl ...
- ACM训练小结-2018年6月14日
于恢复性训练Day2情况如下:https://vjudge.net/contest/234651 先看A题,读懂题意,没有想明白,码完后连续多次WA,后找到错误AC. 对B题,发现其是一个 ...
- 20145230《Java程序设计》第4周学习总结
20145230<Java程序设计>第4周学习总结 教材学习内容总结 继承共同行为 本周学习的首先是Java语言中的继承与多态.何为我们的继承呢?在我们面向对象中,子类继承父类,避免重复的 ...
- Objective-C与Swift的混合编程
Swift 被设计用来无缝兼容 Cocoa 和 Objective-C .在 Swift 中,你可以使用 Objective-C 的 API(包括系统框架和你自定义的代码),你也可以在 Objecti ...
- Eclipse常用插件安装_PropertiesEditor
properties文件在项目中多用做i18n国际化支持的配置文件,在properties文件中出现的中文信息都要转换为Unicode文本,一般的做法都是使用JDK自带的native2ascii工具进 ...
- poj 3080 Blue Jeans【字符串处理+ 亮点是:字符串函数的使用】
题目:http://poj.org/problem?id=3080 Sample Input 3 2 GATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATACCA ...
- python编程常见小技巧
#主要是记录常见的小问题以及解决办法 ##1.复制的代码,经常出现TAB和空格不一致的情况 将tab或者空格删除,然后重新打出空格或者tab就可以了: ##2.python读取文件,经常出现的编码en ...
- python 操作mongoDB数据库
网上关于python 操作mongoDB的相关文章相对不是很多,并且质量也不是很高!下面给出一个完整的 增删改查示例程序! #!/usr/bin/python # -*- coding: utf-8 ...
- tp后台注册登录配置项
1.在application目录下Common/Conf/config.php中 2-17行,首先判断在data目录下有没有特意设置的db.php, config.php,route.php,如果有就 ...
- java集合转换成json时问题和解决方法
json+hibernate死循环问题的一点见解,有需要的朋友可以参考下. [问题]如题所示,在我们使用hibernate框架而又需要将对象转化为json的时候,如果配置了双向的关联关系,就会出现这个 ...