Python day 06
day06 数据类型(四)
今日内容
- 集合
- 内存相关
- 深浅拷贝
补充
补充
列表
reverse,反转。
v1 = [1,2,3111,32,13] print(v1) # [1,2,311,32,13] v1.reverse() print(v1) # [13,32,311,2,1]sort,排序
v1 = [11,22,3111,32,13] print(v1) v1.sort(reverse=False) # 从小到大(默认) print(v1) v1.sort(reverse=True) # 从大到小 print(v1)
字典
keys/values/items
get
info = {'k1':'v1','k2':'v2'} v1 = info['k11111'] v2 = info.get('k1111') # None就是Python中的空 v3 = info.get('k1111',666) print(v2) # None数据类型,改类型表示空(无任何功能,专门用于提供空值)pop,有点像剪切的意思
info = {'k1':'v1','k2':'v2'} result = info.pop('k2') print(info,result) # del 是删除 del info['k1']update
info = {'k1':'v1','k2':'v2'} # 不存在,则添加/存在,则更新 info.update({'k3':'v3','k4':'v4','k2':666}) print(info)
判断一个字符串中是否有敏感字符?
str
v = "人生苦短,我用python" if "python" in v: print('六神花露水')list/tuple
v = ['glacier','周弘医','码云','麻花藤'] 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 = ['麻花藤','麻花藤','glacier'] content = input('请输入内容:') # 我叫麻花藤 / 我是码云 / 我glacier最牛逼 success = True for v in char_list: if v in content: success = False break if success: print(content) else: print('都是大牛') # 示例: # 1. 判断 ‘v2’ 是否在字典的value中 v = {'k1':'v1','k2':'v2','k3':'v3'} 【循环判断】 # 2. 敏感字
内容详细
1. 集合 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('glacier') v.add('glacier') print(v) # 猜一猜集合里有几个'glacier'discard,删除元素
v = {1,2,'glacier'} v.discard('glacier') print(v) # 删除,丢弃一个元素,没有则不执行操作。update,批量添加
v = {1,2,'glacier'} v.update({11,22,33}) print(v) # 批量添加一个合集的元素。intersection,交集
v = {1,2,'glacier'} result = v.intersection({1,'glacier','码云'}) print(result) # {1,'glacier'}union,并集
v = {1,2,'glacier'} result = v.union({1,'glacier','码云'}) print(result) # {1,2,'glacier','码云'}difference,差集
v = {1,2,'glacier'} result = v.difference({1,'glacier','码云'}) # v 中有,而且({1,'glacier','码云'})没有 print(result) # {2} v1 = {1,'glacier','码云'} result1 = v1.difference({1,2,'glacier'}) print(result1)symmetric_difference,对称差集
v = {1,2,'glacier'} result = v.symmetric_difference({1,'glacier','码云'}) print(result)注意
# 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) info = { 1:'alex', True:'oldboy' } print(info)
公共功能
len
v = {1,2,'glacier'} print(len(v))for循环
v = {1,2,'glacier'} for item in v: print(item)索引【无】
步长【无】
切片【无】
删除【无】
修改【无】
嵌套问题
# 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) info = { 1:'glacier', True:'god' } print(info)
2. 内存相关
示例一
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 # 字符串想乘 > 1 则地址不同。示例二:
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 = 'glacier' v2 = v1 v1 = 'god' 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有什么区别?
- == 用于比较值是否相等。
- is 用于比较内存地址是否相等。
走你今儿
- 列表
- reverse
- sort
- 字典
- get (*)
- update
- 集合
- add
- discard
- update
- intersection (*)
- union
- difference
- .....
- 特殊:
- 嵌套:集合/字典的key
- 空:None
- 空集合:...
- id
- type
- 嵌套的应用: (*)
- 赋值
- 修改内部元素:列表/字典/集合
Python day 06的更多相关文章
- python进阶06 常用问题库(2)datetime模块 base64
python进阶06 常用问题库(2)datetime模块 base64 一.datetime模块(时间) 1.datetime.time() t=datetime.time(20,43,30,1) ...
- python笔记06
python笔记06 数据类型 上个笔记内容补充 补充 列表 reverse,反转. v1 = [1,2,3111,32,13] print(v1) v1.reverse() print(v1) v1 ...
- Python函数06/装饰器
Python函数06/装饰器 目录 Python函数06/装饰器 内容大纲 1.装饰器 1.1 开放封闭原则 1.2 装饰器 2.今日练习 内容大纲 1.装饰器 1.装饰器 1.1 开放封闭原则 扩展 ...
- Python面向对象06 /元类type、反射、函数与类的区别、特殊的双下方法
Python面向对象06 /元类type.反射.函数与类的区别.特殊的双下方法 目录 Python面向对象06 /元类type.反射.函数与类的区别.特殊的双下方法 1. 元类type 2. 反射 3 ...
- Python深入06 Python的内存管理
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 语言的内存管理是语言设计的一个重要方面.它是决定语言性能的重要因素.无论是C语言的 ...
- Python补充06 Python之道
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python有一个彩蛋,用下面语句调出: import this 该彩蛋的文档记录 ...
- Python学习06——列表的操作(2)
笨办法学Python第39节 之前用的第三版的书,昨天发现内容不对,八块腹肌又给我下了第四版,这次的内容才对上.本节的代码如下: ten_things = "Apples Oranges C ...
- Python学习--06切片
Python里提供了切片(Slice)操作符获取列表里的元素. 示例: >>> L = [1,2,3,4,5] # 取前2个元素,传统方法 >>> [L[0],L[ ...
- Python进阶06 循环对象
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 这一讲的主要目的是为了大家在读Python程序的时候对循环对象有一个基本概念. 循 ...
- python学习06
流控制 和函数 1)流控制 1.条件语句 if elif else if else 2.循环语句 while for 3.continue 和break continue是跳过本次循环,执行下一次循 ...
随机推荐
- Spring cloud 之Ribbon(一)基本使用
简介 Spring cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它是基于Netflix的Riboon实现的.Ribbon是客户端负载均衡器,这有别语例如Nginx服务端负载 ...
- layui 重加载
tableIns.reload({ page: { curr: 1 //重新从第 1 页开始 } }); tableIns为layui 表格定义的函数 var tableIns= table.rend ...
- 百度地图API实时画出动态运行轨迹(一条行驶轨迹),车头实时指向行驶方向,设置角度偏移
参考网址:https://blog.csdn.net/skywqnan/article/details/79036262 改变车的方向:http://www.cnblogs.com/peixuanzh ...
- Spring Boot 国际化及点击链接跳转国家语言
一.国际化 在SpringBoot中已经自动帮我们配置管理国际化资源的组件,所以我们只需要编写代码就可. @Bean @ConfigurationProperties(prefix = "s ...
- fiddler 安装证书问题,和安装完后,浏览器无法访问问题
安装证书问题 https://blog.csdn.net/l1336037686/article/details/78322014 浏览器无法访问问题 https://blog.csdn.net/u0 ...
- linux怎么查看进程启动,用户的工作目录,pwdx,/proc/11256/cwd
linux 通过pid 寻找程序路径的最简单命令(pwdx) #pwdx pid号1 [pid2] .... 在linux实际操作命令中,查看pid的方式有很多种,通过pid找程序路径的方式也有 ...
- RN启动报错,环境相关问题
启动RN的时候刚开始报错: The request was denied by service delegate (SBMainWorkspace) for reason: Security (&qu ...
- 2018-2019-1 20189203《Linux内核原理与分析》第九周作业
第一部分 课本学习 进程的切换和系统的一般执行过程 进程调度的时机 Linux内核系统通过schedule函数实现进程调度,进程调度的时机就是内核调用schedule函数的时机.当内核即将返回用户空间 ...
- git使用手册整理
-------------------20181217------------------- git使用:在gitbash 下初始化用户: $ git config --global user.nam ...
- 一起ORA-00028案例的处理过程
前言 最近客户在测试新系统A时,遭遇ORA28,回话被终止的问题. 先了解一下大致环境,系统A由系统B通过rman还原恢复,应用程序已经在系统B跑批通过,现在系统A上遇到下面问题. 应用程序报错如下 ...