day5:字典dict
1, 判断是不是列表
li = ['lis3a', 'mary', 'lucy', 'hh', 'kk', 'gg', 'mm', 'oo', 'vv']
if type(li) == list:
print("list")
2,字典的key必须是不可变数据类型,也就是bool,int,str,tuple,value可以是任意的数据类型,有点二分查找去查询,存储大量的键值对,特点是无序的,3.5以前版本
3,字典的增加与修改方式,没有的添加,有的覆盖
dict1 = {"name":"lisa","age":"","hobby":"piano"}
dict1["height"]="" #没有的添加进去
dict1["name"]="mary" #有的覆盖,就相当于修改了
print(dict1) 运行结果:
{'name': 'mary', 'age': '', 'hobby': 'piano', 'height': ''}
4,添加的另外一种方式setdefault
dict1 = {"name":"lisa","age":"","hobby":"piano"} dict1.setdefault("hometown") # 不设置value默认为None
print(dict1) dict1.setdefault("name") # 本来有的不会更新
print(dict1) dict1.setdefault("gender","female") # 设置了value
print(dict1) dict1.setdefault(,True) # 支持很多数据类型,详见上一条
print(dict1)
5,删除,pop函数,必须制定key,不指定会报错,制定成value也会报错,制定的不存在的key 也会崩溃
dict1 = {"name":"lisa","age":"","hobby":"piano"}
print(dict1.pop()) 运行结果:
Traceback (most recent call last):
File "/Users/guolixiao/PycharmProjects/lisa's_practise/boys/5.1_dict.py", line , in <module>
print(dict1.pop())
TypeError: pop expected at least arguments, got dict1 = {"name":"lisa","age":"","hobby":"piano"}
print(dict1.pop(“name”)) 运行结果:
lisa
dict1 = {"name":"lisa","age":"","hobby":"piano"}
print(dict1.pop("gender")) 运行结果:
Traceback (most recent call last):
File "/Users/guolixiao/PycharmProjects/lisa's_practise/boys/5.1_dict.py", line , in <module>
print(dict1.pop("gender"))
KeyError: 'gender'
dict1 = {"name":"lisa","age":"","hobby":"piano"}
print(dict1.pop("gender",None))
# 这个可以专门用来表示没有这个key时候的返回值,或者提示“没有此键”,等也用来防止程序崩溃
运行结果:
None
6,删除的另外一种popitem ,不需要参数,3.5以前随机删除,3.5以后是最后一个
7,del函数可以删除摸一个,或者删除整个dict,这个和列表类似
8,清空字典,clear函数,这个也和字典类似
9,改,update函数
dict1 = {"name":"lisa","age":"","hobby":"piano"}
dict2 ={'name':"mary","gender":"female"}
dict2.update(dict1)
print(dict1)
print(dict2)
#用dict1来更新dict2,没有的添加,有的更新value 运行结果:
{'name': 'lisa', 'age': '', 'hobby': 'piano'}
{'name': 'lisa', 'gender': 'female', 'age': '', 'hobby': 'piano'}
10,查,区分,value,key,item
dict1 = {"name":"lisa","age":"","hobby":"piano"}
print(dict1.keys())
print(dict1.values())
print(dict1.items()) 运行结果:
dict_keys(['name', 'age', 'hobby'])
dict_values(['lisa', '', 'piano'])
dict_items([('name', 'lisa'), ('age', ''), ('hobby', 'piano')])
dict1 = {"name":"lisa","age":"","hobby":"piano"}
for i in dict1: # 默认输出的是key和下一句效果是一样的
print(i) for i in dict1.keys():
print(i) 运行结果:
name
age
hobby
name
age
hobby
11,穿插点字典以外的知识点:
a,b,c =1,2,3
print(a,b,c)
a,b = b,a
print(a,b,c) 运行结果:
1 2 3
2 1 3
a,b = [1,2]
print(a,b)
a,b =[1,2],[3,4]
print(a,b)
# 永远按照最小的单位进行拆包
运行结果:
1 2
[1, 2] [3, 4]
12,iterm打印出来的是元祖,可以进行拆包赋值给k,v
dict1 = {"name":"lisa","age":"","hobby":"piano"}
for i in dict1.values():
print(i) for i in dict1.items():
print(i) for k,v in dict1.items():
print(k,v) 运行结果:
lisa
22
piano
('name', 'lisa')
('age', '')
('hobby', 'piano')
name lisa
age 22
hobby piano
13,查,两种,首选get函数,因为不存在是不会崩溃
v1 = dict1.get("name")
print(v1) v1 = dict1.get("name1")
print(v1) v1 =dict1.get("name1","没有此键")
print(v1) 运行结果:
lisa
None
没有此键
dict1 = {"name":"lisa","age":"","hobby":"piano"}
v1 =dict1["name"]
print(v1) 运行结果:
lisa dict1 = {"name":"lisa","age":"","hobby":"piano"}
v1 =dict1["name1"]
print(v1) 运行结果:
Traceback (most recent call last):
File "/Users/guolixiao/PycharmProjects/lisa's_practise/boys/5.1_dict.py", line 82, in <module>
v1 =dict1["name1"]
KeyError: 'name1'
14,一道练习题
str1 ="hiohph65nooihoh89nlohiolh76nklnl4"
# 找出里面有多少个数字,65算一个,89算一个
for i in str1:
if i.isdigit():
break
else:
str1 = str1.replace(i," ") #用空格替换非数字,这里一定要把新生成的字符串赋值回去 l = str1.split()
print(len(l)) 运行结果:
4
day5:字典dict的更多相关文章
- day5 字典 dict
数据类型划分:可变数据类型,不可变数据类型不可变数据类型:元组,数字,布尔,str, == 可哈希可变数据类型:list , dict, set == 不可哈希dict的 key 必须是不可变数据类型 ...
- python中几个常见的黑盒子之“字典dict” 与 “集合set”
这里说到"字典dict" 和 "集合set"类型,首先,先了解一下,对于python来说,标准散列机制是有hash函数提供的,对于调用一个__hash__方法: ...
- Python中的元组(tuple)、列表(list)、字典(dict)
-------------------------------更新中-------------------------------------- 元组(tuple): 元组常用小括号表示,即:(),元 ...
- python中字典dict的操作
字典可存储任意类型的对象,由键和值(key - value)组成.字典也叫关联数组或哈希表. dict = {' , 'C' : [1 , 2 , 3] } dict['A'] = 007 # 修改字 ...
- python中的字典(dict),列表(list),元组(tuple)
一,List:列表 python内置的一种数据类型是列表:list.list是一种有序的数据集合,可以随意的添加和删除其中的数据.比如列出班里所有的同学的名字,列出所有工厂员工的工号等都是可以用到列表 ...
- Python - 字典(dict) 详解 及 代码
字典(dict) 详解 及 代码 本文地址: http://blog.csdn.net/caroline_wendy/article/details/17291329 字典(dict)是表示映射的数据 ...
- Redis的字典(dict)rehash过程源代码解析
Redis的内存存储结构是个大的字典存储,也就是我们通常说的哈希表.Redis小到能够存储几万记录的CACHE,大到能够存储几千万甚至上亿的记录(看内存而定),这充分说明Redis作为缓冲的强大.Re ...
- python基础之字典dict和集合set
作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7043642.html python基础之字典dict和集合set 字典dic ...
- 自学Python2.4-基本数据类型-字典dict(objct)
Python dict方法总结 一.字典介绍 1.字典概述 ①字典是python中唯一内建的映射类型.又称关联数组或散列②映射类型对象里哈希值(键,key)和指向的对象(值,value)是一对多的的关 ...
随机推荐
- 10.2.翻译系列:使用Fluent API进行属性映射【EF 6 Code-First】
原文链接:https://www.entityframeworktutorial.net/code-first/configure-property-mappings-using-fluent-api ...
- PHP —— 识别运算符实现逻辑比较
最近遇到一个功能的开发,大致意思就是根据用户输入的条件,进行相关的比较操作.本来打算使用用户选择运算符的方式,但是后来结合项目实际,发现需要使用用户输入的自定义运算比较现实一点.大致意思就是: 1.用 ...
- 使用Nginx实现灰度发布(转)
灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式.AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B ...
- 这可能由 CredSSP 加密 oracle 修正引起的。
某天在与服务器进行远程连接时,遇到了以下错误: 发生了身份验证错误. 不支持请求的函数. 远程计算机: <主机名> 这可能由 CredSSP 加密 oracle 修正引起的. 有关更多信息 ...
- [Android]Android数据的四种存储方式
存储方式 Android提供以下四种存储方式: SharePreference SQLite File ContentProvider Android系统中数据基本都是私有的,一般存放在“data/d ...
- AllPay(欧付宝)支付接口集成
AllPay,http://www.allpay.com.tw/,欧付宝是台湾知名的第三方支付公司,拥有丰富的支付模式(支持和支付宝.财付通),只需要一次对接,各种支付模式均可使用. 接口编写SDK: ...
- Jenkins这种构建工具,一般都是内部使用,所以外部基本上不能访问
类似于Jenkins这种构建工具,一般都是内部使用,所以外部基本上不能访问,也可以隔绝外部黑客的入侵等.直接暴露外部是非常不安全的,特别是没有什么安全验证,容易被别人入侵做一些非法的事情! 所以,希望 ...
- 点云PCL中小细节
计算点与点之间的距离的平局距离 double computeCloudResolution (const pcl::PointCloud<PointType>::ConstPtr & ...
- spring data jpa 查询自定义字段,转换为自定义实体
目标:查询数据库中的字段,然后转换成 JSON 格式的数据,返回前台. 环境:idea 2016.3.4, jdk 1.8, mysql 5.6, spring-boot 1.5.2 背景:首先建立 ...
- iLBC
iLBC是一种专为包交换网络通信设计的编解码,优于目前流行的G.729.G.723.1,对丢包进行了特有处理,即使在丢包率 相当高的网络环境下,仍可获得非常清晰的语音效果.