学习使我快乐 第五天
Day 05
一.列表运算
1.列表的重复
- 可直接使用*使其重复,需注意 *号需跟整数,意思是代表重复次数。
- 例:
list1=[1, 2, 3 , 4]print(list1*3)
打印结果为 [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]
2.列表的拼接
- 可直接使用+进行拼接。
- 例
list1=[1, 2, 3, 4]
list2=[5, 6, 7, 8]
print(list1+list2)
打印结果为[1, 2, 3, 4,5, 6, 7, 8]
3.成员运算 : in、not in,运算的结果为布尔值。
- 例
print(3 in [1, 2, 3])
print([3] in [1, 2, 3])
打印结果为:True,False
4.比较大小
a. 比较大小的元素必须是同类型的
b. 比较大小比较的是第一队不相等元素的大小(容器)
c. 数字正常比较大小
- 例
list1 = [1, 2, 3, 4]
list2 = [1, 2, 4, 5]
print(list1 < list2)list1 = [1, 2, '3', 4]
list2 = [1, 2, '4', 5]
print(list1 < list2)list1 = ['1', 2, 3, 4]
list2 = [1, 2, 4, 5]
# 此段打印结果为:TypeError: '<' not supported between instances of 'str' and 'int'
# 不同类型无法作比较
打印结果为:True,True
二、列表的放法和函数
1.获取同类型的最大值或最小值
- 例
num = [1, 2, 3, 4]
print(max(num))
print(min(num))
打印结果为:1,4
2.count : 统计某个元素的出现个数
- 例
num = [1, 2, 3, 4]
print(num.count(num[3]))
print(num.count(50))
# 没有这个元素则会报 0
打印结果为:1,0
3.sum 求和
- 例
num = [1, 2, 3, 4]
print(sum(num))
打印结果为:10
4.reverse:将列表倒序,返回值为None,直接修改列表本身。
- 例
num = [1, 2, 3, 4]
print(num.reverse())
print(num)
打印结果为:[4, 3, 2, 1]
5.sorted:将列表从小到大排序,生成新的列表。
sort:将列表从小到大排序,修改原来的列表。
- 例
num1 = [23, 50, 30, 75]
print(sorted(num1))
print(sorted(num1, reverse=True))
'''
结果为
[23, 30, 50, 75]
[75, 50, 30, 23]
'''
print(num1.sort(reverse=False))
print(num1)
print(num1.sort(reverse=True))
print(num1)
'''
结果为
None
[23, 30, 50, 75]
None
[75, 50, 30, 23]
'''
6.extend():将一个容器中的元素添加到列表中。
- 例
num1.extend('abcde')
print(num1)
num2 = ['a', 7, 8, 9]
num1.extend(num2)
打印结果为:
[75, 50, 30, 23, ‘a’, ‘b’, ‘c’, ‘d’, ‘e’]
[75, 50, 30, 23, ‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘a’, 7, 8, 9]
7.index:查找某个元素
a. 从左向右查找,找到元素立马停止,返回下标。
b. 如果元素不存在,将会报错。
- 例
num1=[75, 50, 30, 23, 'a', 'b', 'c', 'd', 'e', 'a', 7, 8, 9]
index1 = num1.index('a')
print(index1)
index2 = num1.index('a', 5)# 从下标为5的元素开始查找
print(index2)
打印结果为元素下标:4,9
练习:不适用 index 方法寻找第二个元素a
num1=[75, 50, 30, 23, ‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘a’, 7, 8, 9]
total = 0
for i in range(len(num1)):if num1[i] == 'a':total += 1if total == 2:print(i)
三、列表去重
1. 有一个列表,要求去掉重复的人名
- 例如:names = [‘张三’, ‘李四’, ‘大黄’, ‘张三’,‘张三’] -> names = [‘张三’, ‘李四’, ‘大黄’]
解析:方法一
names = ['张三', '李四', '大黄', '张三', '张三']
name_list = []
for i in names:if i not in name_list:name_list.append(i)
print(name_list)
解析:方法二
names = ['张三', '李四', '大黄', '张三', '张三']
for i in range(len(names),-1,-1):if i names.count(i)>1:del names[i]print(names)
解析:方法三
index=0
while index <= len(names)-1:if i names.count(i)>1:del names[index]else:index+=1print(names)
四、列表的推导式(列表的生成式)
列表推导式(列表生成式):生成一个有元素的列表
a. 语法1 :[表达式 i for 变量 in rongqi]
for 循环每执行一次,表达式就会将其生成的结果添加到列表中。
例:
(1).将1-100的整数生成一个列表:nums = [i for i in range(1, 101)] print(nums)
打印结果为:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]
(2).将10个1生成一个列表:nums = [1 for _ in range(10)]
打印结果为:[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
b.append()适用于所有向列表中追加元素的操作;列表推导式在某些情况下可以替代append()import timestart = time.time() list1 = [] for i in range(1, 10000001):list1.append(i) end = time.time() print(f'append 方法一共花费{end - start}秒')start = time.time() list2 = [i for i in range(1, 10000001)] end = time.time() print(f'推导式 方法一共花费{end - start}秒')
得出结果:性能:列表推导式>append()
c.语法二:[表达式 for 变量 in 容器 if 条件] 注:只能加if,不能在家其他命令
for 循环执行一次,if 分支判断一次,条件成立才会向列表添加元素例:将1-100内偶数生成一个列表:
nums = [i for i in range(1,101) if i % 2 == 0 ] print(nums)
打印结果为:[2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100]
d. 语法三:[表达式 for 变量 in 容器 for 变量 in 容器 ] 几乎用不到
例:将1-10打印3次:list4 = [i for _ in range(3) for i in range(1, 11)] print(list4)
打印结果为:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
五、随机模块
1. random:随机模块,适用于俄罗斯轮盘、抽奖等。
- import random
- randint(a,b) -> 从[a,b]闭区间中随机获取一个整数
- randrange()->约等于randint+range
- 例:
import random # randrange()->约等于randint+rangeprint(random.randrange(1, 4, 2))# choice()->从容器中随机获取一个元素print(random.choice([1, 2, 3, 4]))# choices()->从容器中随机获取k个元素,有放回的抽取元素print(random.choices([1, 2, 3, 4], k=5))# sample()->从有序容器中无放回的抽取元素,也可以获取k个元素print(random.sample([1, 2, 3, 4], k=3))# shffule()->将有序容器随机打乱顺序,无返回值,修改序列本身list=[1, 2, 3, 4]print(random.shuffle(list))print(list)
打印结果为:
1
4
[4, 3, 3, 2, 3]
[1, 3, 4]
None
[1, 4, 2, 3]
练习:课堂点名器
names = ['张三','李四','王二','麻子']
random.shuffle(names)
while True:# 此处可进行暗箱操作 result = random.choices(names, k=1)if result == ['王二']:# 随机至王二在进行输出break
print(f'被抽中的同学为:{result}')
# 会一直是王二
- 使用PyQt/wxpython等GUI(图形可视化)进行可视化
- 使用pyinstall将程序封装成windows的exe可执行文件
学习使我快乐 第五天相关推荐
- c语言stl用法,C STL快速入门!学习使我快乐
C++ STL中最基本以及最常用的类或容器无非就是以下几个: ▶ string ▶ vector ▶ set ▶ list ▶ map 下面就依次介绍它们,并给出一些最常见的最实用的使用方法,做到快速 ...
- 大数据证实:学习使人快乐
感恩节到了,为了回馈大家对ProHR的支持,我们要给大家分享一个变快乐的简单方法: 最近有一个基于领英用户调查的研究告诉我们,越爱学习的人,越快乐. 这项研究中有几个有意思的数字,那些愿意在工作中花时 ...
- 团队使我成长,学习使我快乐
如何才能获得更好的知识传授?很多人可能会想到去上课.参加培训或者阅读相关书籍.然而,除了这些常规做法外,自主学习也是一个不错的选择. 自主学习指的是在没有外部指导的情况下,通过自己的努力和探索来获取知 ...
- 学习使我快乐学习使我升华只要你爱学习我们就是一辈子的好朋友
[不知道是什么的总(xia)结(bibi)] 回到家一直在练题练题写题解写题解看小说看小说出去玩(晋江的文有点好看啊喂,出去玩有点烧钱啊啧女人). ~~~如果这都不算爱~~~我有什么 ...
- 学习使我快乐---CountDownLatch的典型应用
CountDownLatch的典型应用 前言 一.CountDownLatch是什么? 二.案例分析 1.代码示例 2.输出结果 3.个人理解 方法简要说明 总结 前言 面试官:下面有这么一个场景&q ...
- 做软件这几年,学习使我快乐
转载请注明出处:王亟亟的大牛之路 开题之前先安利,最近一年懒很多,博客基本没写什么,库也没大更新,最近几周会刻苦挤出些东西,安利地址:https://github.com/ddwhan0123/Use ...
- 学习使我快乐 第六天
Day 6 一.字符串 字符串的作用:传递信息 字符串的表达方式:使用单引号或者双引号引起来的一串符号或者字符. 1.字符串的性质: a.字符串是有序的(下标,切片). b.字符串是不可改变的,所以字 ...
- 为什么学习使我快乐?
书山有路勤为径,学海无涯苦作舟. 学习知识要善于思考,思考,在思考. 人总是要学习的.死的时候,才是毕业的时候. 对世界上的一切学问与知识的掌握也并非难事,只要持之以恒地学习,努力掌握规律,达到熟悉的 ...
- 学习使我快乐 第七天
Day 007 一.文件操作 数据持久化:数据从瞬时状态转换为永久状态 1.open:open(参数1,参数2,参数3-) - 打开文件,打开的是文件对象. 2.参数: 参数1:路径文件名字. 参数2 ...
最新文章
- UI培训教程分享:Ui设计的细节规范有哪些需要注意?
- html排序按钮_插件分享 | 可进行排序扫描任务的Task Queue
- python 导入数据对不齐_[Python] 大文件数据读取分析
- python 科学计算设计_用Python做科学计算 pdf版
- 基于linux的智能小车_商汤首款原创机器人SenseRover X自动驾驶小车斩获Red Dot Award...
- Asp.net夜话之一:asp.net介绍
- Nginx解决403 forbidden
- scrapy爬虫返回302,301,解决方法
- LSTM神经网络图解
- 驱动程序安装全攻略1
- LPVOID lpParameter
- oracle周数计算
- “人生苦短,我用Python“——网络嗅探与欺骗
- 全栈式深度学习(概括实讲解)
- linux解压zip、tar压缩包
- 数据挖掘面试题(1)
- 服务器文件夹temp,服务器性能变慢 c盘temp文件夹存在大量sess开头文件的问题原因及解决...
- Minecraft 1.16.5模组开发(三十二) 自定义投掷物品实体
- uniapp返回上一页携带参数,两种方法,实测有效
- 【css3文字阴影+盒子阴影+过渡+2d转换+3d转换】
热门文章
- (转载)Peter Norvig:十年学会编程
- python回归分析代码_python代码实现回归分析--线性回归
- JAVA计算机毕业设计预装箱式净水站可视化信息管理系统Mybatis+源码+数据库+lw文档+系统+调试部署
- linux poll 作用,Linux中poll机制的理解
- 微软MS08-067漏洞,小白必看,超详细!!!
- missing ServletWebServerFactory bean
- 卡片布局 java_Java Swing CardLayout卡片布局的实现示例
- Axure下载,附注册码
- github设置分支push权限
- cdo处理数据(自用笔记