Python第三课小节
Python第三次课堂小结
- 1.列表元素操作
- 1.1列表元素的删除
- 2.列表元素访问与计数
- 3.浅拷贝/浅复制
- 4.列表排序
- 5.random函数产生随机数
- 6.用于序列操作的常用内置函数
1.列表元素操作
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
1.1列表元素的删除
1.使用del命令删除列表中指定位置上的元素。
a_list=[3,5,7,9,11]
del a_list[1]
a_list
最后输出列表元素为:[3,7,9,11]
2. 使用列表的pop()方法删除并返回指定位置(默认为最后一个)上的元素,如果给定的索引超出了列表的范围则抛出异常。
a_list=list((3,5,7,9,11))
a_list.pop()
#11
a_list
#[3,5,7,9]
a_list.pop(1)
#5
a_list
#[3,7,9]
3.使用列表对象的remove()方法删除首次出现的指定元素,如果列表中不存在要删除的元素,则抛出异常。
a_list=[3,5,7,9,7,11]
a_list.remove(7)
a_list
#[3,5,9,7,11]
2.列表元素访问与计数
- 使用下标直接访问列表元素,如果指定下标不存在,则抛出异常。
- 使用列表对象的index()方法获取指定元素首次出现的下标,若列表对象中不存在指定元素,则抛出异常。
aList=[3,4,5,7,9]
aList
#[3,4,5,7,9]
aLsit.index(7)
#3
- 使用列表对象count()方法统计指定元素在列表对象中出现的次数。
aList=[3,4,5,5.5,7,9,11,13,15,17]
aList.count(7)
#1
aList(0)
#0
aList(8)
#0
3.浅拷贝/浅复制
1.浅拷贝会创建新对象,其内容是对原对象的引用,之所以称为浅拷贝,是它仅仅只拷贝了一层。
2.切片操作返回的是列表元素的浅拷贝:生成一个新的列表,并且把原列表中的所有元素的引用都复制到新列表中。
3.如果原列表中只包含整数、实数、复数等基本类型或元组、字符串这样的不可变类型的数据,一般是没有问题的。
4.如果原列表中包含列表这类的可变数据类型,由于浅复制时只是把子列表的引用复制到新列表中,这样的话修改任何一个都会影响另一个。
alist=[123,"hello",["Python","C++"]]
blist=alist[:]#切片,浅拷贝
id(alist)#两者的内存地址不相同
#4425805960
id(blist)
#4425921480
blist#两个列表的元素完全一样
#[123,"hello",["Python","C++"]]
alist is blist#不是同一个对象
#False
alist==blist#两个列表的元素完全一样
#True
blist[0]=456#修改新的对象不会影响另一个(不可变数据类型)
blist
#[456,"hello",["Python","C++"]]
alist
#[123,"hello",["Python","C++"]]
alist = [123,"hello",["python","C++"]]
blist = alist[:]
blist[2].append(789)
blist[0]=456
alist = [123,"hello",["python","C++"]]
blist = alist #blist与alist指向同一个内存
id(alist) #内存地址相同
#4425805960
id(blist)
#4425805960
alist[:]=[101, 102, 103]
id(alist)
#4425805960
alist
#[101, 102, 103]
blist
#[101, 102, 103]
,!,在这里插,入图片描述
4.列表排序
1.使用列表对象的sort()方法进行原地排序,支持多种不同的排序方法。
>>>alist=[3,4,5,6,7,8,9,11,13,15,17]
>>>import random
>>>random.shuffle(alist)
>>>alist
[3,4,15,11,9,17,13,6,7,5]
>>>alist.sort()#默认是升序排序
>>>alist.sort(reverse=True)#降序排序
>>>alist
[17,15,13,11,9,7,6,5,4,3]
>>>alist.sort(key=lambda x:len(str(x)))#按转换成字符串的长度排序
>>>alist
[9,7,6,5,4,3,17,15,13,11]
2.使用内置函数sorted()对列表进行排序并返回新列表
>>>alist=[9,7,6,5,4,3,17,15,13,11]
>>>alist
[9,7,6,5,4,3,17,15,13,11]
>>>sorted(alist)#升序排序
[3,4,5,6,7,9,11,13,15,17]
>>>sorted(alist,reverse=True)#降序排序
[17,15,13,11,9,7,6,5,4,3]
3.使用列表对象的reverse()方法将元素原地逆序
>>>alist=[3,5,7,9,11,13,15,17,19,21]
>>>alist.reverse()
>>>alist
[21,19,17,,15,13,11,9,7,5,3]
4.使用内置函数reversed()对列表元素进行逆序排列并返回迭代对象
>>>alist=[3,5,7,9,11,13,15,17,19,21]
>>>newlist=reversed(alist)#返回reversed对象
>>>list(newlist)
[3,5,7,9,11,13,15,17,19,21]
5.random函数产生随机数
import random
print(random.randint(1,10)) #输出1~10中一个整数的随机数
print(random.random()) #产生0~1之间的随机浮点数
print(random.uniform(1.1,5.4)) #产生1.1导5.4之间随机浮点数,区间可以不是整数
print(random.choice('tomorrow'))#从列表随机选取一个元素
print(random.randrange(1,100,2))#输出1~100之间间隔为2的随机整数
a = [1,3,5,6,7]
random.shuffle(a)#将序列a中的元素打乱
print(a)
6.用于序列操作的常用内置函数
1.len(列表):返回列表中的元素个数,同样适用于元组、字典、集合、字符串等。
2.max(列表)、 min(列表):返回列表中的最大或最小元素,同样适用于元组、字典、集合、range对象等。
3.sum(列表):对列表的元素进行求和运算,对非数值型列表运算需要指定start参数,同样适用于元组、range。
>>> sum(range(1, 11)) #sum()函数的start参数默认为0
55
>>> sum(range(1, 11), 5) #指定start参数为5,等价于5+sum(range(1,11))
60
>>> sum([[1, 2], [3], [4]], []) #这个操作占用空间较大,慎用
[1, 2, 3, 4]
案列:有10名同学的python课程成绩分别为:94, 89, 96, 88, 92, 86, 69, 95, 78, 85,计算并输出:平均值、最高的3个成绩、最低的3个成绩、成绩中位数。
scores = [94,89,96,88,92,86,69,95,78,85]
count = len(scores)#取得成绩个数
print(sum(scores)/count)
scores.sort()
print("最高的三个成绩为:",scores[-1:-4:-1])
print("最低的三个成绩为:",scores[0:3])
#求中位数的法1:
if count % 2 == 0:median=(scores[count//2-1]+scores[count//2])/2
else:median=scores(count//2)
#求中位数的法2:
print("成绩的中位数是:{:.2f}".format(median))
Python第三课小节相关推荐
- 三、Python第三课——Python中数字的用法及编码原则(Python禅意)
目录 一.Python中的数字 1.整数 2.浮点数 3.整数.浮点数和字符串的联系和区别 二.编码原则 1.为代码增加注释 2.Python 禅意 A.编码精美 B.避繁就简 C.无简就繁 D.使用 ...
- 三、入门Python第三课
前面我们已经安装好了python解释器和pycharm集成开发环境 一.进入pycharm新建项目 现在 让我们来了解pycharm的基本使用.打开pycharm后我们来到如下界面: 点击New Pr ...
- python 第三课 第一个python程序
什么是命令行模式和Python交互模式. 命令行模式 在Windows开始菜单选择"命令提示符",就进入到命令行模式,它的提示符类似C:\>: ┌────────────── ...
- 自兴人工智能——Python第三课(字符串和字典)
1. 字符串是python最常用的数据类型:字符串的基本操作有分片,索引,成员资格,求长度,求最大值和最小值 字符串格式化使用百分号(%)实现. 1. 创建字符串:string1='Hello, ...
- Python第三课:列表,元组,集合
原码Gitee:https://gitee.com/xu-wen-jie/python.git 原码Github:https://github.com/miracleboys/Python.git 文 ...
- Python学习记录 基于《Python编程 从入门到实践》 Python基础 Python第三课 操作列表
遍历整个列表(循环) for循环 把名字循环打印出来 把列表赋值给变量name 把name中的每个元素赋值给变量a 循环打印a. 主要for循环后的冒号不要丢了,否则会报错. name=['张三',' ...
- Python学习第三课-基本数据类型
Python学习第三课-基本数据类型 一.基本概念 1.1表达式 1.2语句 1.3程序 1.4函数 内置函数 自定义函数 参数 返回值 二.标识符 2.1 关键字 2.2标识符概念 驼峰命名法 下划 ...
- Python基础第三课-基本数据类型
Python基础第三课-基本数据类型 1.几个基本概念 1.1 表达式 1.2 语句 1.3 程序(program) 1.4 函数(function) 2.标识符 2.1 关键字 2.2 标识符概念 ...
- 【Python的自学之路】(五):案例分析第三课
目录 序言 背景 思路 代码及解析 跋文 序言 上次谈到了GUI框架tkinter,今天就基于这个模块,开发一个工作中用到的小工具.备份存储过程的小工具. 背景 案例分析第三课-备份存储过程小工具 前 ...
最新文章
- Hibernate的简单应用
- Android Socket编程
- 我对STL的一些看法(五)初识关联容器
- python有什么内容_python能做什么
- ipcfg报错_ipcplwhl.dll
- 全局路径规划:图搜索算法介绍2(A star)
- rabbitmq消息的序列化与反序列化
- C#通过Socket在网络间发送和接收图片的演示源码
- AJAX做一个动态进度条
- 解决Rocketdock在win7上重启后不能保存设置和图标的问题
- 关于人脸识别的最全研究!
- win10可以登录QQ微信 浏览器不能打开网页
- webuploader 手机端上传图片默认打开相机 改为选择相册
- IJCAI2022推荐系统论文集锦
- 海思hi3716c机顶盒接usb摄像头和usb无线耳机时,无线耳机有时没有声音
- shell双引号、单引号、反撇号的使用
- 概念和术语-数学统计学
- 微信js 大转盘抽奖
- Havok VS PhysX 漫谈物理加速世界!
- python制作闯关答题软件_Pygame制作答题类游戏的实现