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.列表元素访问与计数

  1. 使用下标直接访问列表元素,如果指定下标不存在,则抛出异常。
  2. 使用列表对象的index()方法获取指定元素首次出现的下标,若列表对象中不存在指定元素,则抛出异常。
aList=[3,4,5,7,9]
aList
#[3,4,5,7,9]
aLsit.index(7)
#3
  1. 使用列表对象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第三课小节相关推荐

  1. 三、Python第三课——Python中数字的用法及编码原则(Python禅意)

    目录 一.Python中的数字 1.整数 2.浮点数 3.整数.浮点数和字符串的联系和区别 二.编码原则 1.为代码增加注释 2.Python 禅意 A.编码精美 B.避繁就简 C.无简就繁 D.使用 ...

  2. 三、入门Python第三课

    前面我们已经安装好了python解释器和pycharm集成开发环境 一.进入pycharm新建项目 现在 让我们来了解pycharm的基本使用.打开pycharm后我们来到如下界面: 点击New Pr ...

  3. python 第三课 第一个python程序

    什么是命令行模式和Python交互模式. 命令行模式 在Windows开始菜单选择"命令提示符",就进入到命令行模式,它的提示符类似C:\>: ┌────────────── ...

  4. 自兴人工智能——Python第三课(字符串和字典)

    1. 字符串是python最常用的数据类型:字符串的基本操作有分片,索引,成员资格,求长度,求最大值和最小值 字符串格式化使用百分号(%)实现. 1.    创建字符串:string1='Hello, ...

  5. Python第三课:列表,元组,集合

    原码Gitee:https://gitee.com/xu-wen-jie/python.git 原码Github:https://github.com/miracleboys/Python.git 文 ...

  6. Python学习记录 基于《Python编程 从入门到实践》 Python基础 Python第三课 操作列表

    遍历整个列表(循环) for循环 把名字循环打印出来 把列表赋值给变量name 把name中的每个元素赋值给变量a 循环打印a. 主要for循环后的冒号不要丢了,否则会报错. name=['张三',' ...

  7. Python学习第三课-基本数据类型

    Python学习第三课-基本数据类型 一.基本概念 1.1表达式 1.2语句 1.3程序 1.4函数 内置函数 自定义函数 参数 返回值 二.标识符 2.1 关键字 2.2标识符概念 驼峰命名法 下划 ...

  8. Python基础第三课-基本数据类型

    Python基础第三课-基本数据类型 1.几个基本概念 1.1 表达式 1.2 语句 1.3 程序(program) 1.4 函数(function) 2.标识符 2.1 关键字 2.2 标识符概念 ...

  9. 【Python的自学之路】(五):案例分析第三课

    目录 序言 背景 思路 代码及解析 跋文 序言 上次谈到了GUI框架tkinter,今天就基于这个模块,开发一个工作中用到的小工具.备份存储过程的小工具. 背景 案例分析第三课-备份存储过程小工具 前 ...

最新文章

  1. Hibernate的简单应用
  2. Android Socket编程
  3. 我对STL的一些看法(五)初识关联容器
  4. python有什么内容_python能做什么
  5. ipcfg报错_ipcplwhl.dll
  6. 全局路径规划:图搜索算法介绍2(A star)
  7. rabbitmq消息的序列化与反序列化
  8. C#通过Socket在网络间发送和接收图片的演示源码
  9. AJAX做一个动态进度条
  10. 解决Rocketdock在win7上重启后不能保存设置和图标的问题
  11. 关于人脸识别的最全研究!
  12. win10可以登录QQ微信 浏览器不能打开网页
  13. webuploader 手机端上传图片默认打开相机 改为选择相册
  14. IJCAI2022推荐系统论文集锦
  15. 海思hi3716c机顶盒接usb摄像头和usb无线耳机时,无线耳机有时没有声音
  16. shell双引号、单引号、反撇号的使用
  17. 概念和术语-数学统计学
  18. 微信js 大转盘抽奖
  19. Havok VS PhysX 漫谈物理加速世界!
  20. python制作闯关答题软件_Pygame制作答题类游戏的实现

热门文章

  1. tablewidget
  2. 7z格式、LZMA压缩算法和7-Zip详细介绍
  3. 唯品会密码JS解密与python登录!
  4. 用selenium验证唯品会登录
  5. (个人记录)Ensight后处理EDEM学习笔记
  6. python opencv制作隐藏图片
  7. 实现公网访问树莓派4B(花生壳内网穿透)
  8. pgsql数据替换替换换行符
  9. 微软解析新Edge浏览器的多进程体系结构
  10. 【Unity入门计划】基本概念(8)-瓦片地图 TileMap 01