系统学习python第六天学习笔记
1.补充
1.列表方法补充
reverse,反转。
v1 = [1,2,3111,32,13] print(v1) v1.reverse() print(v1)sort,排序
v1 = [11,22,3111,32,13] print(v1) # v1.sort(reverse=False) # 从小到大(默认) # v1.sort(reverse=True) # 从大到小 # print(v1)
2.字典方法补充
keys/values/items
get
- 判断字典中是否存在键,不存在则返回None,存在则取对应的值并返回赋值给变量
info = {'k1':'v1','k2':'v2'} # v1 = info['k11111'] # v2 = info.get('k1111') # None就是Python中的空 # v3 = info.get('k1111',666) # print(v2) # None数据类型,改类型表示空(无任何功能,专门用于提供空值)pop
- 删除,也可以用del删除
info = {'k1':'v1','k2':'v2'} result = info.pop('k2') print(info,result) del info['k1']update
- 不存在,则添加/存在,则更新
info = {'k1':'v1','k2':'v2'} # 不存在,则添加/存在,则更新 info.update({'k3':'v3','k4':'v4','k2':666}) print(info)
3.判断一个字符串中是否有敏感字符?
str
v = "Python全栈21期" if "全栈" in v: print('含敏感字符')list/tuple
v = ['alex','oldboy','藏老四','利奇航'] if "利奇航" in v: print('含敏感')dict
v = {'k1':'v1','k2':'v2','k3':'v3'} # 默认按照键判断,即:判断x是否是字典的键。 if 'x' in v: pass # 请判断:k1 是否在其中? if 'k1' in v: pass # 请判断:v2 是否在其中? # 方式一:循环判断 flag = '不存在' for v in v.values(): if v == 'v2': flag = '存在' print(flag) # 方式二: if 'v2' in list(v.values()): # 强制转换成列表 ['v1','v2','v3'] pass # 请判断:k2:v2 是否在其中? value = v.get('k2') if value == 'v2': print('存在') else: print('不存在')练习题
# 让用户输入任意字符串,然后判断此字符串是否包含指定的敏感字符。 char_list = ['利奇航','堂有光','炸展会'] content = input('请输入内容:') # 我叫利奇航 / 我是堂有光 / 我要炸展会 success = True for v in char_list: if v in content: success = False break if success: print(content) else: print('包含铭感字符') # 示例: # 1. 昨天课上最后一题 # 2. 判断 ‘v2’ 是否在字典的value中 v = {'k1':'v1','k2':'v2','k3':'v3'} 【循环判断】 # 3. 敏感字
注意点:
可设置一个标签来判断状态
char_list = ['利奇航','堂有光','炸展会'] content = input('请输入内容:') success = True # 标签判断状态 for v in char_list: if v in content: success = False break if success: print(content) else: print('包含铭感字符')
2.集合 set
特点
- 无序
- 无重复
空集合的创建
v = {1,2,3,4,5,6,99,100} # 疑问:v = {} """ None int v1 = 123 v1 = int() --> 0 bool v2 = True/False v2 = bool() -> False str v3 = "" v3 = str() list v4 = [] v4 = list() tuple v5 = () v5 = tuple() dict v6 = {} v6 = dict() set v7 = set() """集合独有功能
add 添加
# v = {1,2} # v.add('Lishaoqi') # v.add('Lishaoqi') # print(v)discard 删除
# v = {1,2,'李邵奇'} # v.discard('李邵奇') # print(v)update 批量添加
# v = {1,2,'李邵奇'} # v.update({11,22,33}) # print(v)intersection 交集
# v = {1,2,'李邵奇'} # result = v.intersection({1,'李邵奇','小黑'}) # print(result)union 并集
# v = {1,2,'李邵奇'} # result = v.union({1,'李邵奇','小黑'}) # print(result)difference 差集
# v = {1,2,'李邵奇'} # result = v.difference({1,'李邵奇','小黑'}) # v中有且{1,'李邵奇','小黑'}没有 # print(result) # v1 = {1,'李邵奇','小黑'} # result1 = v1.difference({1,2,'李邵奇'}) # print(result1)symmetric_difference 对称差集
# v = {1,2,'李邵奇'} # result = v.symmetric_difference({1,'李邵奇','小黑'}) # print(result)
注意:交集、并集和差集括号内传入参数时,可以同样是集合,也可以是列表和元组
公共功能
len
v = {1,2,'李邵奇'} print(len(v))for循环
v = {1,2,'李邵奇'} for item in v: print(item)索引【无】
步长【无】
切片【无】
删除【无】
修改【无】
嵌套问题
- 哈希问题
列表/字典/集合:不能放在集合中,也不能作为字典的key(unhashable)
# 1. 列表/字典/集合 -> 不能放在集合中+不能作为字典的key(unhashable) # info = {1, 2, 3, 4, True, "国风", None, (1, 2, 3)} # print(info) # 2. hash -> 哈希是怎么回事? # 因为在内部会将值进行哈希算法并得到一个数值(对应内存地址),以后用于快速查找。 # 3. 特殊情况 # info = {0, 2, 3, 4, False, "国风", None, (1, 2, 3)} # print(info) # 此时不打印False # info = { # 1:'alex', # True:'oldboy' # } # 此时没有key为True的键,而是'oldboy'将'alex'覆盖 # print(info)
3.内存相关
示例一
v1 = [11,22,33] v2 = [11,22,33] v1 = 666 v2 = 666 v1 = "asdf" v2 = "asdf" # 按理 v1 和 v2 应该是不同的内存地址。特殊: 1. 整型: -5 ~ 256 2. 字符串:"alex",'asfasd asdf asdf d_asdf ' ----"f_*" * 3 - 重新开辟内存。
特殊:
# 按理 v1 和 v2 应该是不同的内存地址。特殊:
1. 整型: -5 ~ 256
2. 字符串:"alex",'asfasd asdf asdf d_asdf '
----"f_*" * 3 - 重新开辟内存。
示例二:
v1 = [11,22,33,44] v1 = [11,22,33]示例三:
v1 = [11,22,33] v2 = v1 # 练习1 (内部修改) v1 = [11,22,33] v2 = v1 v1.append(666) print(v2) # 含 666 # 练习2:(重新赋值) v1 = [11,22,33] v2 = v1 v1 = [1,2,3,4] print(v2) # 练习3:(重新赋值) v1 = 'alex' v2 = v1 v1 = 'oldboy' print(v2)示例四
v = [1,2,3] values = [11,22,v] # 练习1: """ v.append(9) print(values) # [11,22,[1,2,3,9]] """ # 练习2: """ values[2].append(999) print(v) # [1, 2, 3, 999] """ # 练习3: """ v = 999 print(values) # [11, 22, [1, 2, 3]] """ # 练习4: values[2] = 666 print(v) # [1, 2, 3]示例五
v1 = [1,2] v2 = [2,3] v3 = [11,22,v1,v2,v1]查看内存地址
""" v1 = [1,2,3] v2 = v1 v1.append(999) print(v1,v2) print(id(v1),id(v2)) """ """ v1 = [1,2,3] v2 = v1 print(id(v1),id(v2)) v1 = 999 print(id(v1),id(v2)) """问题: == 和 is有什么区别?
v1 = [1, 2, 3, 4] v2 = [1, 2, 3, 5, 6] v1 == v2 ----> False v1 is v2 ----> False v1 = [1, 2] v2 = [1, 2] v1 == v2 ----> True v1 is v2 ----> False v1 = [1, 2, 3] v2 = v1 v1 == v2 ----> True v1 is v2 ----> True- == 用于比较值是否相等。
- is 用于比较内存地址是否相等。
系统学习python第六天学习笔记的更多相关文章
- 学习python网络数据采集笔记-1、2章
英文不好只能看中文版的.邮电出版社翻译的真很烂. 以上是吐槽,以下是正文. 书中用的pthon 3.X版本,建议安装python3.4以上的版本,低版本的没有自带pip安装插件会比较麻烦. 下载地址: ...
- 学习Python第六天
今天我们讲讲数据类型中的集合,博客写得有点糙,后续应该要进行优化优化了........ 集合:无序,不重复的数据组合,主要作用:去重,把一个列表变成集合,就自动去重了 基本语法:S = {1}类型为集 ...
- [IT学习]Python pandas 学习
今天学习pandas来处理数据,结果用python 3.5.0的shell来调试,总是报错. 报错中包含如下字样: Traceback (most recent call last): File &q ...
- python学习笔记(一)之为什么学习python
python的特点: 跨平台 实现同一个功能是Java代码的1/5 python应用范围: 操作系统 web 3D动画 企业应用 云计算 如何学习python? 学习语法 验证例子 学会总结 课外实践
- D03——C语言基础学习PYTHON
C语言基础学习PYTHON——基础学习D03 20180804内容纲要: 1 函数的基本概念 2 函数的参数 3 函数的全局变量与局部变量 4 函数的返回值 5 递归函数 6 高阶函数 7 匿名函数 ...
- 零基础学习Python数据分析
网上虽然有很多Python学习的教程,但是大多是围绕Python网页开发等展开.数据分析所需要的Python技能和网页开发等差别非常大,本人就是浪费了很多时间来看这些博客.书籍.所以就有了本文,希望能 ...
- python的学习研究
2017年5月8日-----开始学习python 为什么学习python? 感觉做爬虫很酷,我又不喜欢Java,所以就学python 提升自己,入行PHP到这个月底半年,想更多的扩展自己,让自己增值 ...
- Python进阶学习之特殊方法实例详析
Python进阶学习之特殊方法实例详析 最近在学习python,学习到了一个之前没接触过的--特殊方法. 什么是特殊方法?当我们在设计一个类的时候,python中有一个用于初始化的方法$__init_ ...
- python爬虫学习笔记(一)——环境配置(windows系统)
在进行python爬虫学习前,需要进行如下准备工作: python3+pip官方配置 1.Anaconda(推荐,包括python和相关库) [推荐地址:清华镜像] https://mirrors ...
随机推荐
- Codeforces 2A :winner
A. Winner time limit per test 1 second memory limit per test 64 megabytes input standard input outpu ...
- Day4-T3
原题目 吉儿是一家古董店的老板娘,由于她经营有道,小店开得红红火火.昨天,吉儿无意之中得到了散 落民间几百年的珍宝——月亮之眼.吉儿深知“月亮之眼”价值连城:它是由许多珍珠相连而成的,工 匠们用金线连 ...
- s5pc100开发板Nand flash移植
相关软件下载地址:http://pan.baidu.com/s/16yo8Y fsc100开发板 交叉编译工具:arm-cortex_a8-linux-gnueabi-gcc 添加针对我们平台 ...
- [转载]SQL Server 数据库定时自动备份
推荐使用SQLserver自带的SSMS工具创建维护计划来实现数据库定时自动备份 “维护计划”是在SSMS的对象资源管理中“管理”节点下面.使用维护计划可以通过可视化的操作,只点点鼠标就可以创建数据库 ...
- 八十五、SAP中的ALV创建之四,去掉主键背景色
一.我们执行程序之后,发现表格中所有的内容都是有底色的 二.这个是因为我们在代码中规定了主键 三.我们去掉处理第一个之外的主键 四.运行程序,发现还是所有字段都有背景色 五.这是因为在每次ls_fie ...
- ubuntu12.04 安装完XRDP显示空白桌面
先放链接:http://c-nergy.be/blog/?p=3518 在ubuntu软件中心搜索:fallback session,安装gnome-session-fallback: 在主文件夹(h ...
- Open_CV 色彩空间
色彩空间: 颜色空间按照基本结构可以分两大类:基色颜色空间 和 色.亮分离颜色空间.前者的典型是 RGB,还包括 CMY.CMYK.CIE XYZ 等:后者包括 YCC/YUV.Lab.以及一批“色相 ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-align-justify
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- MFC之拆分窗口
7.3.1 多视图 许多文档只要求单个视图,但每个文档可支持一个以上的视图.为了帮助编程人员实现多个视图,文档对象保留它的视图列表.为添加和移去视图提供成员函数,例如,提供的UpdateAllView ...
- java登录以及连接数据库的温习
学完一部分android相关知识点后,为了下周的java测试,我还是反回来重新的学习了上学期的知识点java,在今天打开eclipse之后,对于自己之前自己所写过的东西还有连接数据库的内容,已经有所忘 ...