系统学习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 ...
随机推荐
- lvm 通过扩容本身磁盘容量扩容
场景:sdb之前是3G容量,现在扩容了sdb的容量到8G.现在把新扩容的5G容量扩展到现有的逻辑卷中 [root@localhost ~]# pvresize /dev/sdb Physical v ...
- Vue - slot-scope="scope" 的意义
<template slot-scope="scope"> <el-button type="primary ...
- django 实现 内网访问 和 用花生壳进行内网穿透
1.在setting.py中找到 ALLOWED_HOSTS = [] 改为 ALLOWED_HOSTS = ['*',]2.启动服务时使用如下命令行 python .\manage.py runs ...
- Web安全测试学习笔记 - vulhub环境搭建
Vulhub和DVWA一样,也是开源漏洞靶场,地址:https://github.com/vulhub/vulhub 环境搭建过程如下: 1. 下载和安装Ubuntu 16.04镜像,镜像地址:htt ...
- tensorflow学习笔记--dataset使用,创建自己的数据集
数据读入需求 我们在训练模型参数时想要从训练数据集中一次取出一小批数据(比如50条.100条)做梯度下降,不断地分批取出数据直到损失函数基本不再减小并且在训练集上的正确率足够高,取出的n条数据还要是预 ...
- 刷题49. Group Anagrams
一.题目说明 题目是49. Group Anagrams,给定一列字符串,求同源词(包含相同字母的此)的集合.题目难度是Medium. 二.我的做法 题目简单,就不多说,直接上代码: class So ...
- android导入项目build错误
android studio apply script build.gradle 卡死 buildscript { repositories { maven{ url 'http://maven.al ...
- 099-PHP二维数组的元素输出二
<?php $stu=array(array(76,87,68), array(65,89,95), array(90,80,66), array(90,95,65)); //定义一个二维数组 ...
- MySQL5.7忘记密码解决方案
第一种方法 首先是网上普遍见到的 关闭服务 windows下在C:\ProgramData(隐藏文件夹)\MySQL\MySQL Server 5.7\my.ini中的[mysqld]下添加skip- ...
- javaweb历史上最简单的使用Ajax判断用户名是否被注册(不跳转页面奥!)
关于前端: 使用jquery-3.3.1.js记得要导入奥---最后我会附加我的源码的 哎我也不多说了新手加菜鸟jquery真的不太懂!看代码吧!个别地方我会写上我对本程序的理解. 关于后台也就是se ...