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的更多相关文章

  1. day5 字典 dict

    数据类型划分:可变数据类型,不可变数据类型不可变数据类型:元组,数字,布尔,str, == 可哈希可变数据类型:list , dict, set == 不可哈希dict的 key 必须是不可变数据类型 ...

  2. python中几个常见的黑盒子之“字典dict” 与 “集合set”

    这里说到"字典dict" 和 "集合set"类型,首先,先了解一下,对于python来说,标准散列机制是有hash函数提供的,对于调用一个__hash__方法: ...

  3. Python中的元组(tuple)、列表(list)、字典(dict)

    -------------------------------更新中-------------------------------------- 元组(tuple): 元组常用小括号表示,即:(),元 ...

  4. python中字典dict的操作

    字典可存储任意类型的对象,由键和值(key - value)组成.字典也叫关联数组或哈希表. dict = {' , 'C' : [1 , 2 , 3] } dict['A'] = 007 # 修改字 ...

  5. python中的字典(dict),列表(list),元组(tuple)

    一,List:列表 python内置的一种数据类型是列表:list.list是一种有序的数据集合,可以随意的添加和删除其中的数据.比如列出班里所有的同学的名字,列出所有工厂员工的工号等都是可以用到列表 ...

  6. Python - 字典(dict) 详解 及 代码

    字典(dict) 详解 及 代码 本文地址: http://blog.csdn.net/caroline_wendy/article/details/17291329 字典(dict)是表示映射的数据 ...

  7. Redis的字典(dict)rehash过程源代码解析

    Redis的内存存储结构是个大的字典存储,也就是我们通常说的哈希表.Redis小到能够存储几万记录的CACHE,大到能够存储几千万甚至上亿的记录(看内存而定),这充分说明Redis作为缓冲的强大.Re ...

  8. python基础之字典dict和集合set

    作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7043642.html python基础之字典dict和集合set 字典dic ...

  9. 自学Python2.4-基本数据类型-字典dict(objct)

    Python dict方法总结 一.字典介绍 1.字典概述 ①字典是python中唯一内建的映射类型.又称关联数组或散列②映射类型对象里哈希值(键,key)和指向的对象(值,value)是一对多的的关 ...

随机推荐

  1. linux每日命令(36):wc命令

    Linux系统中的wc(Word Count)命令的功能为统计指定文件中的字节数.字数.行数,并将统计结果显示输出. 一.命令格式 wc [-clw][--help][--version][文件... ...

  2. 【Android】Eclipse快捷键精选

    1. ctrl+shift+r:打开资源 这可能是所有快捷键组合中最省时间的了. 这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个字母,比如applic*.x ...

  3. 修改ip导致服务不可用

    修改ip导致服务不可用 1.修改hostsvi /etc/hosts 修改ip地址 2.lsnrctl start 后会发现The listener supports no services,解决方案 ...

  4. Android Gallery实现3D相册(附效果图+Demo源码)

    今天因为要做一个设置开机画面的功能,主要是让用户可以设置自己的开机画面,应用层需要做让用户选择开机画面图片的功能.所以需要做一个简单的图片浏览选择程序.最后选用Gallery作为基本控件.加入了一些炫 ...

  5. 【30集iCore3_ADP出厂源代码(ARM部分)讲解视频】30-12底层驱动之液晶画点驱动

    视频简介:该视频介绍iCore3应用开发平台中液晶驱动的方法. 源视频包下载地址:链接:http://pan.baidu.com/s/1qXQoOQo 密码:gvgo 银杏科技优酷视频发布区:http ...

  6. Java编程的逻辑 (86) - 动态代理

    ​本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...

  7. OSI网络体系结构

    为把在一个网络结构下开发的系统与在另一个网络结构下开发的系统互连起来,以实现更高一级的应用,使异种机之间的通信成为可能,便于网络结构标准化,国际标准化组织(ISO)于1983年形成了开放系统互连基本参 ...

  8. [UFLDL] ConvNet

    二十三(Convolution和Pooling练习)  三十八(Stacked CNN简单介绍) 三十六(关于构建深度卷积SAE网络的一点困惑) 五十(Deconvolution Network简单理 ...

  9. python通过get,post方式发送http请求和接收http响应的方法,pythonget

    python通过get,post方式发送http请求和接收http响应的方法,pythonget 本文实例讲述了python通过get,post方式发送http请求和接收http响应的方法.分享给大家 ...

  10. 面试题思考:GET和POST两种基本请求方法的区别

    面试回答: GET请求在URL中传送的参数是有长度限制的,而POST没有. GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息. GET参数通过URL传递,POST放在Re ...