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)是一对多的的关 ...
随机推荐
- MeasureSpec 的三中类型
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools=&qu ...
- pandas通过皮尔逊积矩线性相关系数(Pearson's r)计算数据相关性
皮尔逊积矩线性相关系数(Pearson's r)用于计算两组数组之间是否有线性关联,举个例子: a = pd.Series([1,2,3,4,5,6,7,8,9,10]) b = pd.Series( ...
- [APM] 解读2016之APM国内篇:快速增长的APM市场和技术
前言 2016年是APM技术和市场快速发展的一年,在这一年里APM市场特别是国内的市场取得了极大的增长,用户对APM价值的认识和接受度也有了很大的提升,国内市场已基本完成了用户教育和市场培养的阶段.与 ...
- Android下查看共享库依赖项
Android下查看共享库依赖项 [时间:2017-02] [状态:Open] [关键词:android,共享库依赖项,so,ndk,objdump,readelf] 起因 近期在处理Android下 ...
- 水塘抽样(Reservoir Sampling)问题
水塘抽样是一系列的随机算法,其目的在于从包含n个项目的集合S中选取k个样本,其中n为一很大或未知的数量,尤其适用于不能把所有n个项目都存放到主内存的情况. 在高德纳的计算机程序设计艺术中,有如下问题: ...
- [ModemManger]ModemManger的取消
http://www.linux-databook.info/?page_id=3748 systemctl disable ModemManager.service 失能ModemManger从而取 ...
- linux 常用命令1【转】
1.1. 关机 shutdown -h now 关闭系统(1) init 0 关闭系统(2) telinit 0 关闭系统(3) shutdown -h hours:minutes & 按预定 ...
- Java编程的逻辑 (85) - 注解
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...
- 程序-代写(qq:928900200)
CS 310 Programming Assignment 4 Due April 27, 2014 5:00 P.M. About 15 years in the future... The Mar ...
- linux memcached开机启动
方法一: 在/etc/rc.d/rc.local 加入以下代码 /usr/local/memcached/bin/memcached -u root -d -m -l -P /tmp/memcache ...