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)

四、列表的推导式(列表的生成式)

  1. 列表推导式(列表生成式):生成一个有元素的列表
    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可执行文件

学习使我快乐 第五天相关推荐

  1. c语言stl用法,C STL快速入门!学习使我快乐

    C++ STL中最基本以及最常用的类或容器无非就是以下几个: ▶ string ▶ vector ▶ set ▶ list ▶ map 下面就依次介绍它们,并给出一些最常见的最实用的使用方法,做到快速 ...

  2. 大数据证实:学习使人快乐

    感恩节到了,为了回馈大家对ProHR的支持,我们要给大家分享一个变快乐的简单方法: 最近有一个基于领英用户调查的研究告诉我们,越爱学习的人,越快乐. 这项研究中有几个有意思的数字,那些愿意在工作中花时 ...

  3. 团队使我成长,学习使我快乐

    如何才能获得更好的知识传授?很多人可能会想到去上课.参加培训或者阅读相关书籍.然而,除了这些常规做法外,自主学习也是一个不错的选择. 自主学习指的是在没有外部指导的情况下,通过自己的努力和探索来获取知 ...

  4. 学习使我快乐学习使我升华只要你爱学习我们就是一辈子的好朋友

    [不知道是什么的总(xia)结(bibi)]          回到家一直在练题练题写题解写题解看小说看小说出去玩(晋江的文有点好看啊喂,出去玩有点烧钱啊啧女人). ~~~如果这都不算爱~~~我有什么 ...

  5. 学习使我快乐---CountDownLatch的典型应用

    CountDownLatch的典型应用 前言 一.CountDownLatch是什么? 二.案例分析 1.代码示例 2.输出结果 3.个人理解 方法简要说明 总结 前言 面试官:下面有这么一个场景&q ...

  6. 做软件这几年,学习使我快乐

    转载请注明出处:王亟亟的大牛之路 开题之前先安利,最近一年懒很多,博客基本没写什么,库也没大更新,最近几周会刻苦挤出些东西,安利地址:https://github.com/ddwhan0123/Use ...

  7. 学习使我快乐 第六天

    Day 6 一.字符串 字符串的作用:传递信息 字符串的表达方式:使用单引号或者双引号引起来的一串符号或者字符. 1.字符串的性质: a.字符串是有序的(下标,切片). b.字符串是不可改变的,所以字 ...

  8. 为什么学习使我快乐?

    书山有路勤为径,学海无涯苦作舟. 学习知识要善于思考,思考,在思考. 人总是要学习的.死的时候,才是毕业的时候. 对世界上的一切学问与知识的掌握也并非难事,只要持之以恒地学习,努力掌握规律,达到熟悉的 ...

  9. 学习使我快乐 第七天

    Day 007 一.文件操作 数据持久化:数据从瞬时状态转换为永久状态 1.open:open(参数1,参数2,参数3-) - 打开文件,打开的是文件对象. 2.参数: 参数1:路径文件名字. 参数2 ...

最新文章

  1. UI培训教程分享:Ui设计的细节规范有哪些需要注意?
  2. html排序按钮_插件分享 | 可进行排序扫描任务的Task Queue
  3. python 导入数据对不齐_[Python] 大文件数据读取分析
  4. python 科学计算设计_用Python做科学计算 pdf版
  5. 基于linux的智能小车_商汤首款原创机器人SenseRover X自动驾驶小车斩获Red Dot Award...
  6. Asp.net夜话之一:asp.net介绍
  7. Nginx解决403 forbidden
  8. scrapy爬虫返回302,301,解决方法
  9. LSTM神经网络图解
  10. 驱动程序安装全攻略1
  11. LPVOID lpParameter
  12. oracle周数计算
  13. “人生苦短,我用Python“——网络嗅探与欺骗
  14. 全栈式深度学习(概括实讲解)
  15. linux解压zip、tar压缩包
  16. 数据挖掘面试题(1)
  17. 服务器文件夹temp,服务器性能变慢 c盘temp文件夹存在大量sess开头文件的问题原因及解决...
  18. Minecraft 1.16.5模组开发(三十二) 自定义投掷物品实体
  19. uniapp返回上一页携带参数,两种方法,实测有效
  20. 【css3文字阴影+盒子阴影+过渡+2d转换+3d转换】

热门文章

  1. (转载)Peter Norvig:十年学会编程
  2. python回归分析代码_python代码实现回归分析--线性回归
  3. JAVA计算机毕业设计预装箱式净水站可视化信息管理系统Mybatis+源码+数据库+lw文档+系统+调试部署
  4. linux poll 作用,Linux中poll机制的理解
  5. 微软MS08-067漏洞,小白必看,超详细!!!
  6. missing ServletWebServerFactory bean
  7. 卡片布局 java_Java Swing CardLayout卡片布局的实现示例
  8. Axure下载,附注册码
  9. github设置分支push权限
  10. cdo处理数据(自用笔记