s21day06 python笔记
s21day06 python笔记
一、昨日内容回顾及补充
回顾
补充
列表独有功能
reverse:反转
v = [1,2,3,4,5] v.reverse() #[5,4,3,2,1]sort:排序
- .sort():默认(从小到大)排序
- .sort(reverse = False):从小到大排序(相当于默认)
- .sort(reverse = True):从大到小排序
v = [1,3,5,2,4] v.sort(reverse = False) #[1,2,3,4,5] v.sort(reverse = True) #[5,4,3,2,1]
字典独有功能
get:相当于索引取值
info = {'k1':'v1','k2':'v2'} v1 = info.get('k1') #相当于v1 = info['k1'] v2 = info.get('k11') #None v3 = info.get('k11',666) #666pop:删除
info = {'k1':'v1','k2':'v2'} result = info.pop('k2') #删除'k2':'v2',并将'k2'对应的值'v2'赋值给result #del info['k2']update:批量添加(修改)
- 不存在则增加,存在则修改
info = {'k1':'v1','k2':'v2'} info.update({'k3':'v3','k4':'v4','k2':666}) #添加'k3':'v3','k4':'v4',修改'k2'的值为666
判断是否有敏感字符
字符串(str)
v = 'python全栈21期' if '全栈' in v: print('包含敏感字符')列表(list)/元组(tuple)
v = ['alex','oldboy','张三','李四'] if '李四' in v: print('包含敏感字符') #元组(tuple)同理字典(dict)
v = {'k1':'v1','k2':'v2','k3':'v3'} #默认按照键判断,即判断x是否是字典中的键 if 'x' in v: pass #问题1:判断k1是否在v中? v = {'k1':'v1','k2':'v2','k3':'v3'} if 'k1' in v: pass #问题2:判断v2是否在v中? #方法1:循环判断 v = {'k1':'v1','k2':'v2','k3':'v3'} flag = '不存在' for v in v.values(): if v == 'v2': flag = '存在' print(flag) #方法2: #强制转换成列表[v1,v2,v3] if 'v2' in list(v.values()): print('存在') #问题3:判断k2:v2是否在v中? value = v.get('k2') if value == 'v2': print('存在') else: print('不存在') 示例:判断用户输入内容是否有敏感字符 char_list = ['张三','李四','王五'] #敏感字符 content = input('请输入内容:') flag = True for i in char_list: if i in content: flag = False break if flag: print(content) else: print('包含敏感字符')
二、集合(set)
特性:无序性,可变性,互异性
书写格式:v = {1,2,3,4,5,6,7}
空集合表示方式:v = set()
集合独有功能(v = {1,2,3})
- add:添加
- 使用格式:v.add(4) #v = {1,2,3,4}
- 注:添加集合中已有的元素,集合不再重复添加
- discard:删除
- 使用格式:v.discard(2) #v = {1,3}
- update:批量添加
- 使用格式:v.update({4,5,6}) #v = {1,2,3,4,5,6}
- intersection:交集
- 使用格式:result = v.intersection({1,3,4}) #{1,3}
- union:并集
- 使用格式:result = v.union({1,3,4}) #{1,2,3,4}
- difference:差集
- 使用格式:result = v.difference({1,3,4}) #{2}
- symmetric_difference:对称差集
- 使用格式:result = v.symmetric_difference({1,3,4}) #{2,4}
- add:添加
公共功能(v = {1,2,3})
长度:len
- 使用格式:len(v) #3
for循环
使用格式:
for i in v: print(i) #1,2,3
总结
列表(list)/字典(dict)/集合(set)
- 不能放在集合中
- 不能作为字典的键(key)
hash(哈希)是怎么回事?
- 因为在内部会将值进行哈希算法,并得到一个数值(对应内存地址),以后用于快速查找
注意:
#第1点: info = {0,1,2,False,'你好',None,(1,2,3)} print(info) #{0,1,2,'你好',None,(1,2,3)} #因为False相当于0,所以False不输出 #第2点: info = { 1:'alex', #因为True相当于1,所以把1对应的值修改了 True:'oldboy' } print(info) #{1:'oldboy'}
三、数据类型表示空
- 补充数据类型:None
- None就是python中的空
- None转化为布尔为False
- None无任何功能,专门用于提供空值
- 数据类型表示空
- None
- int:v1 = int() #0
- bool:v2 = bool() #False
- str:v3 = "" 或 v3 = str()
- list:v4 = [] 或 v4 = list()
- tuple:v5 = () 或 v5 = tuple()
- dict:v6 = {} 或 v6 = dict()
- set:v7 = set()
三、内存相关
列表(list)/字典(dict)/集合(set)
情况一:
v1 = [1,2,3] v2 = v1 v1.append(4) #增加 print(v2) #[1,2,3,4] #在v1里面修改(增加/删除),v2也跟着改变- 修改内存中的元素,所有指向那个内存的值都会改变
情况二:
v1 = [1,2,3] v2 = v1 v1 = [3,4,5] #重新赋值 print(v2) #[1,2,3] #重新赋值v1,v2不改变- 重新赋值不修改内存中的元素,只改变值的指向
字符串(str)/元组(tuple)
- 只有情况二,只能重新赋值,不能修改
总结
在python中,为了提高性能,值若是以下情况(python小数据池),就不重新开辟内存
- 常用数字:-5~256
- 简单字符串:如'alex',除去 'alex' * 3(数字大于1) 这种情况
== 比较的是值是否相等,is 比较的是内存地址是否相等
#例1: v1 = [1,2] v2 = [1,2] v1 == v2 #True v1 is v2 #False #例2: v1 = [1,2] v2 = v1 v1 == v2 #True v1 is v2 #True- 注:python小数据池除外
s21day06 python笔记的更多相关文章
- Python笔记之不可不练
如果您已经有了一定的Python编程基础,那么本文就是为您的编程能力锦上添花,如果您刚刚开始对Python有一点点兴趣,不怕,Python的重点基础知识已经总结在博文<Python笔记之不可不知 ...
- boost.python笔记
boost.python笔记 标签: boost.python,python, C++ 简介 Boost.python是什么? 它是boost库的一部分,随boost一起安装,用来实现C++和Pyth ...
- 20.Python笔记之SqlAlchemy使用
Date:2016-03-27 Title:20.Python笔记之SqlAlchemy使用 Tags:python Category:Python 作者:刘耀 博客:www.liuyao.me 一. ...
- Python笔记——类定义
Python笔记——类定义 一.类定义: class <类名>: <语句> 类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性 如果直接使用类名修改其属 ...
- 13.python笔记之pyyaml模块
Date:2016-03-25 Title:13.Python笔记之Pyymal模块使用 Tags:Python Category:Python 博客地址:www.liuyao.me 作者:刘耀 YA ...
- 8.python笔记之面向对象基础
title: 8.Python笔记之面向对象基础 date: 2016-02-21 15:10:35 tags: Python categories: Python --- 面向对象思维导图 (来自1 ...
- python笔记 - day8
python笔记 - day8 参考: http://www.cnblogs.com/wupeiqi/p/4766801.html http://www.cnblogs.com/wupeiqi/art ...
- python笔记 - day7-1 之面向对象编程
python笔记 - day7-1 之面向对象编程 什么时候用面向对象: 多个函数的参数相同: 当某一些函数具有相同参数时,可以使用面向对象的方式,将参数值一次性的封装到对象,以后去对象中取值即可: ...
- python笔记 - day7
python笔记 - day7 参考: http://www.cnblogs.com/wupeiqi/articles/5501365.html 面向对象,初级篇: http://www.cnblog ...
随机推荐
- D8 双连通分量
记得有个梗那一天,zw学生zzh大佬说逃不掉的路变成a不掉的题哈哈哈哈: 分离的路径: BZOJ 1718POJ 3177LUOGU 286: 思路:在同一个边双连通分量中,任意两点都有至少两条独立路 ...
- 使用python玩跳一跳亲测使用步骤详解
玩微信跳一跳,测测python跳一跳,顺便蹭一蹭热度: 参考博文 使用python玩跳一跳超详细使用教程 WIN10系统,安卓用户请直入此: python辅助作者github账号为:wangshub. ...
- 2018年12月25日 圣诞节快乐 生成器plus
import time#导入时间模块 time.sleep(5)#输入间隔时间5秒 def p_bz():#使用函数 生产包子 for i in range(100): yield "包子% ...
- redux-thunk的理解
问题:1.redux-thunk要解决什么问题? 要解决异步请求问题,Action发出以后,Reducer立即算出State,这叫做同步:Action发出以后,过一段时间再执行 Reducer,这就叫 ...
- Sublime text 3 For LINUX 注册方法&关闭更新提示
在 /etc/hosts 文件加入以下 127.0.0.1 www.sublimetext.com 127.0.0.1 license.sublimehq.com 然后再Sublime输入以下注册码 ...
- js打开新页面的方式:
1.超链接<a href="http://www.jb51.net" title="脚本之家">Welcome</a>等效于js代码wi ...
- 安卓外派(Android外派)提供安卓程序员外派业务(北京动点,可签合同)
北京动点飞扬长年提供安卓工程师外派业务. 平均技术情况如下: 1.2~3年以上Android平台开发经验 2.熟练掌握java技术,熟悉面向对象编程设计 3.熟悉Android应用开发框架及Activ ...
- 【虚拟机】解决网络适配器没有 VirtualBox Host-Only Ethernet Adapter 问题
下面以windows系统来演示重新安装 VirtualBox Host-Only Ethernet Adapter的方法 1.“win+r”输入“devmgmt.msc”,出现如下界面: 2.点击菜单 ...
- 利用python操作excel
https://zhuanlan.zhihu.com/p/51292549 打开程序:https://segmentfault.com/q/1010000002441500
- MVC _Ajax的使用【七】
一.本篇主要写的是在MVC项目中一种ajax的使用方法 1. 首先在控制器中创建两个方法,showCreate()和AddUserInfo() using System; using System. ...