Python--操作列表
1.for循环
1.1 for循环的基本语法
for variable in iterable: # 执行循环体 # 这里可以是任何有效的Python代码块
这里的variable是一个变量名,用于在每次循环迭代时临时存储iterable中的下一个元素。
iterable是一个可迭代对象,比如列表(list)、集合(set)、范围(range)、元组(tuple)、字符串(string)、字典(dictionary)。
在每次循环迭代中,iterable中的下一个元素会被赋值给variable,然后执行循环体内的代码块,代码块可以有任何条语句,只要它们的缩进相同。当iterable中的所有元素都被遍历后,循环就会结束。
1.2 for循环在列表中的应用
my_list = [1, 2, 3, 4, 5] # 创建一个列表 # 使用for循环遍历列表
for number in my_list: print(number) # 打印列表中的每个数字
在这个示例中,number是循环变量,my_list是可迭代对象。在每次循环迭代中,number被赋值为my_list中的下一个元素,然后执行print(number)语句。当my_list中的所有元素都被遍历后,循环结束。
1.3.遍历范围(使用 range() 函数)
for i in range(5): # 默认从0开始,到5(不包括5) print(i)
range() 是 Python 中的一个内置函数,用于生成一个整数序列,通常用于 for 循环中。range() 函数的语法如下:
range(start, stop[, step])
参数解释:
start:序列的起始值(包含),默认为 0。
stop:序列的结束值(不包含),即生成的序列中最大值为 stop - 1。
step:序列中的元素之间的步长,即每个相邻元素的差值,默认为 1。
2.遍历整个列表
下面使用一个循环输出所有学生的姓名:
students = ['刘备', '曹操', '孙权']
for s in students: #输出学生的姓名print(s,end=' ')
上面print利用end=’ '把每次输出的换行改为空格.
2.1 print详细使用
print()函数的基本语法如下:
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)参数解释:
*objects:要打印的一个或多个对象,它们之间用逗号分隔。 这些对象可以是字符串、数字、变量、表达式等。
sep:用于在对象之间插入的字符串,默认为一个空格。
end:在最后一个对象之后附加的字符串,默认为换行符\n。
file:指定输出流,默认为sys.stdout,即标准输出(通常是控制台)。
flush:是否立即刷新输出流,默认为False。在交互式模式下,flush参数通常被忽略; 但在某些I/O库中,例如在写入文件或网络连接时,它可能会很有用。
- 打印字符串
print("欢迎!")
- 打印变量
name = "sss"
age = 30
print("我的名字叫", name, "我今年", age, "岁了。")
- 格式化输出(使用sep和end参数)
print("中国", "西安", "sss", sep=', ', end='!!!\n')
3.避免缩进错误
Python 根据缩进来判断代码行与程序其他部分的关系。
下面来看⼀些较为常见的缩进错误。
3.1 忘记缩进
位于 for 语句后面且属于循环组成部分的代码,⼀定要缩进。 如果忘记缩进,python会提醒你
students = ['刘备', '曹操', '孙权']
for s in students: #输出学生的姓名
print(s) #没有缩进,会出现错误提示
通常,将紧跟在 for 语句后面的代码行缩进,可消除这种缩进错误。
3.2 忘记缩进其它代码
如果位于for语句后面有多条语句,那么它们的缩进应该一直.例如下面的代码.需要的操作如下:
students = ['刘备', '曹操', '孙权']
for s in students: #输出学生的姓名print(f'{s}','你的学习非常好')print('期待下节课见面!')
如果缩进不对,输出的结果如下:
students = ['刘备', '曹操', '孙权']
for s in students: #输出学生的姓名print(f'{s}','你的学习非常好')
print('期待下节课见面!') #这一句没有缩进,不属于for循环
3.3 不必要的缩进
message = 'sss'print(message)
调用 print() 无须缩进,因此 Python将指出这种错误:
3.4 漏写冒号
for 语句末尾的冒号告诉 Python,下⼀行是循环的第⼀行。
students = ['刘备', '曹操', '孙权']
for s in students #输出学生的姓名print(s)
4.创建数值列表
列表非常适合用于存储数值集合。
4.1 使用range()函数
函数 range() 让你能够轻松地生成⼀系列的数。
要创建数值列表,可使用 list() 函数将 range() 的结果直接转换为列表。如果将 range() 作为 list() 的参数,输出将是⼀个数值列表。
numbers = list(range(1, 6))
print(numbers)
例如,下面的代码打印 1〜10 的偶数:
even_numbers = list(range(2, 11, 2))
print(even_numbers)
例如,下面的代码,创建一个列表,保存1~10的平方数:
squares = list(range(1,11))
i = 0
for v in squares: v2 = v**2 # **表示指数 squares[i] = v2 i = i+1
print(squares)
下面的代码和上面的作用相同:
squares = [] #表明squares是列表
for v in range(11): #v从1遍历到10,不包括11squares.append(v**2)
print(squares)
4.2数值列表统计计算
你可以轻松地找出数值列表中的最大值、最小值和求和:
digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
a = min(digits)
b = max(digits)
c = sum(digits)
print(digits)
print('最小值:',a,',最大值:',b,',和:',c)
4.3 列表推导式
列表推导式(list comprehension)将 for 循环和创建新元素的代码合并成⼀行,并自动追加新元素。
下面使用列表推导式创建平方数列表:
squares = [v**2 for v in range(1,11)]
print(squares)
在方括号内,定义⼀个表达式,用于生成要存储到列表中的值。如表达式 value**2,它计算平方值。接下来,编写⼀个 for循环,用于给表达式提供值。
5.使用列表的一部分
你可以处理列表的部分元素,在Python 中称为切片(slice)。
5.1 切片
切片(slice)是一种简洁的方式来访问列表中的一部分元素。切片操作基于索引进行,可以返回一个新的列表,这个新列表包含原列表中指定范围内的元素。
切片的基本语法如下:
list[start:stop:step]
说明:list 是要进行切片的列表。start 是切片的起始索引(包含),默认为0。stop 是切片的结束索引(不包含),默认为列表的长度。step 是切片的步长,即每隔多少个元素取一个值,默认为1。如果步长为负数,则表示从后往前取元素。
下面是一些切片操作的示例:
# 创建一个列表
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 切片操作
# 取前三个元素(索引0到3,不包括3,等同my_list[0:3])
print(my_list[:3]) # 输出: [0, 1, 2] ,由于没有指定起始,默认为0 # 取从索引3到索引7的元素(不包括7)
print(my_list[3:7]) # 输出: [3, 4, 5, 6] # 取所有元素(等同于my_list)
print(my_list[:]) # 输出: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 取每隔一个元素的元素(步长为2)
print(my_list[::2]) # 输出: [0, 2, 4, 6, 8] # 从后往前取,取最后三个元素(索引-3到-1)
print(my_list[-3:]) # 输出: [7, 8, 9] # 反转列表(从后往前取,步长为-1)
print(my_list[::-1]) # 输出: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
切片操作不会修改原列表,而是返回一个新的列表。
5.2 遍历切片
遍历切片(slice)与遍历列表(list)或其他可迭代对象的方式相同。切片是列表的一个子集,因此你可以使用相同的循环结构来遍历它。以下是如何遍历切片的示例:
# 创建一个列表
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 创建一个切片,例如从索引1到索引5(不包括5)
slice_of_list = my_list[1:5] # 使用for循环遍历切片
for item in slice_of_list: print(item) # 输出结果将是:
# 1
# 2
# 3
# 4
在很多情况下,切片是很有用的。例如,在编写游戏时,可以在玩家退出游戏时将其最终得分加⼊⼀个列表,然后将该列表按降序排列,再创建⼀个只包含前三个得分的切片,以获取该玩家的三个最高得分;在处理数据时,可以使用切片来进行批量处理;在编写 Web 应用程序时,可以使用切片来分页显示信息。
5.3 复制列表
要复制列表,可以创建⼀个包含整个列表的切片,方法是同时省略起始索引和终止索引([:])。
li1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
li2 = li1[:] #切片会创建一个临时的列表
print('li1:',li1)
print('li2:',li2)
li1.append(100) #新增一个元素100
li2.append(200) #新增一个元素200
print('li1,新增100后:',li1)
print('li2,新增200后:',li2)
从上面的输出结果能看出,li1和li2是两个独立的列表。
下面是错误的示例
li1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
li2 = li1 #li2和li1关联到同一个列表
print('li1:',li1)
print('li2:',li2)
li1.append(100) #新增一个元素100
li2.append(200) #新增一个元素200
print('li1,新增100后:',li1)
print('li2,新增200后:',li2)
6.元组
将不能修改的值称为不可变的,而不可变的列表称为元组(tuple)。
元组(Tuple)它用于存储一系列不可变的值。这些值可以是任何数据类型,并且它们之间通过逗号分隔,整体由圆括号包围。
6.1 元组的特性:
不可变:元组中的元素在创建后不能被修改。
索引访问:元组中的元素可以通过索引访问。
可以包含任何数据类型:元组中的元素可以是整数、浮点数、字符串、列表、元组等。
# 创建一个简单的元组
t1 = (1, 2, 3, 4, 5)
print(t1) # 输出(1, 2, 3, 4, 5)# 访问元组中的元素
print(t1[0]) # 输出: 1 # 元组中的元素可以是不同类型
t2 = (1, 'hello', 3.14, [4, 5, 6]) # 元组中的元组
t3 = (1, (2, 3), 4) # 遍历元组
for item in t2: print(item)
#15,16行,输出结果如下:
# 1
# hello
# 3.14
# [4, 5, 6]
注意:严格地说,元组是由逗号标识的,圆括号只是让元组看起来更整洁、更清晰。如果你要定义只包含⼀个元素的元组,必须在这个元素后⾯加上逗号:
t1 = (1)
t2 = (1,)
t3 = 1,
print(t1,type(t1)) #type输出括号里的类型
print(t2,type(t2))
print(t3,type(t3))
6.2 遍历元组的元素
像列表⼀样,也可以使用for 循环来遍历元组中的所有值。
t1 = (1,2,3,4,5)
for v in t1: print(v,end=' ') #用空格分隔数据 ,输出:1 2 3 4 5
6.3 修改元组变量的值
元组的值不能修改,它是不可变的值。
t1 = (1,2,3,4,5)
t1[0] = 100 #试图修改元组第一个元素的值
但可以修改元组变量的值
t1 = (1,2,3,4,5)
#t1[0] = 100 #错误
t1 = ('中国','趣字节')
print(t1) #输出 ('中国', '趣字节')
上面的代码并没有修改元组的值,只是把新元组关联到变量t1 ,给变量重新赋值是合法的
相关文章:

Python--操作列表
1.for循环 1.1 for循环的基本语法 for variable in iterable: # 执行循环体 # 这里可以是任何有效的Python代码块这里的variable是一个变量名,用于在每次循环迭代时临时存储iterable中的下一个元素。 iterable是一个可迭代对象,比如列表(…...

JMeter(需要补充请在留言区发给我,谢谢)
一、学习工具 1、CinfigElement(HTTP Request Defaults、HTTP Header Manager、HTTP Authorization、CSV Data Set Config、User Defined Variables、JDBC Connection Configuration、HTTP Cookie Manager、Random Variable) 二、协议 1、HTTP协议(消息体数据&am…...

线程池的执行流程和配置参数总结
一、线程池的执行流程总结 提交线程任务;如果线程池中存在空闲线程,则分配一个空闲线程给任务,执行线程任务;线程池中不存在空闲线程,则线程池会判断当前线程数是否超过核心线程数(corePoolSize)…...

node-red-L3-重启指定端口的 node-red
重启指定端口 目的步骤查找正在运行的Node.js服务的进程ID(PID):停止Node.js服务:启动Node.js服务: 目的 重启指定端口的 node-red 步骤 在Linux系统中,如果你想要重启一个正在运行的Node.js服务&#x…...

(done) 使用泰勒展开证明欧拉公式
问问神奇的 GPT,how to prove euler formula? 一个答案如下:...

红队apt--邮件钓鱼
前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 免责声明: 本文仅供了解攻击方手法使用,切勿用于非授权情节 初步了解邮件基础 用途方面 这个我们应该比较熟悉,最常用于验证码接收,也有一些厂商会用这个来打广告,…...

十七,Spring Boot 整合 MyBatis 的详细步骤(两种方式)
十七,Spring Boot 整合 MyBatis 的详细步骤(两种方式) 文章目录 十七,Spring Boot 整合 MyBatis 的详细步骤(两种方式)1. Spring Boot 配置 MyBatis 的详细步骤2. 最后: MyBatis 的官方文档:https://mybatis.p2hp.com/ 关于 MyBa…...

DNS协议解析
DNS协议解析 什么是DNS协议 IP地址:一长串唯一标识网络上的计算机的数字 域名:一串由点分割的字符串名字 网址包含了域名 DNS:域名解析协议 IP>域名 --反向解析 域名>IP --正向解析 域名 由ICANN管理,有级别…...

每日一题——第一百零八题
题目: 写几个函数, ①输入10个职工的姓名和职工号 ②按照职工号由小到大排列, 姓名顺序也随之调整 ③要求输入一个职工号, 用折半查找找出该职工的姓名 #include<stdio.h> #include<string.h> #define MAX_EMPOLYEES…...

使用Python免费将pdf转为docx
刚刚想将pdf转换为docx文档时,居然要收费 还好我学过编程,这不得露两手 将pdf 转换为 docx 文档 的操作步骤 我这里使用的是Python语言 (1)在终端上安装 pdf2docx 是一个 Python 库,它可以将 PDF 文件转换为 Word (…...

树莓派4B+UBUNTU20.04+静态ip+ssh配置
树莓派4B+UBUNTU20.04+静态ip+ssh配置 1.烧录Ubuntu镜像1.1选择pi 4b1.2选择ubuntu server (服务器版,无桌面)20.041.3选择sd卡1.4 点击右下角 NEXT ,编辑设置,输入密码,wifi选CN, 开启ssh1.5 烧录,依次点击“是”,等待完成2 烧录完成后装入树莓派,上电,等待系统完成配…...

C#实现指南:将文件夹与exe合并为一个exe
在软件开发过程中,有时需要将多个文件(如资源文件、配置文件等)与可执行文件(exe)打包在一起,以便于分发和部署。在C#中,我们可以利用ILMerge或Costura.Fody等工具来实现这一目标。本文将介绍如…...

linux信号 | 学习信号三步走 | 全解析信号的产生方式
前言:本节内容是信号, 主要讲解的是信号的产生。信号的产生是我们学习信号的第二个阶段。 我们已经学习过第一个阶段——信号的概念与预备知识(没有学过的友友可以查看我的前一篇文章)。 以及我们还没有学习信号的第三个阶段——信…...

C++ 刷题 使用到的一些有用的容器和函数
优先队列 c优先队列priority_queue(自定义比较函数)_c优先队列自定义比较-CSDN博客 373. 查找和最小的 K 对数字 - 力扣(LeetCode) 官方题解: class Solution { public:vector<vector<int>> kSmallestP…...

【Kubernetes】常见面试题汇总(三十四)
目录 86. K8s 每个 Pod 中有一个特殊的 Pause 容器能否去除,简述原因。 特别说明: 题目 1-68 属于【Kubernetes】的常规概念题,即 “ 汇总(一)~(二十二)” 。 题目 69-113 属于【Kuberne…...

C++标准库双向链表 list 中的insert函数实现。
CPrimer中文版(第五版): //运行时错误:迭代器表示要拷贝的范围,不能指向与目的位置相同的容器 slist.insert(slist.begin(),slist.begin(),slist.end()); 如果我们传递给insert一对迭代器,它们不能…...

华为机考练习(golang)
输入 第一行输入一个正整数N,表示整数个数。(0<N<100000) 第二行输入N个整数,整数的取值范围为[-100,100]。 第三行输入一个正整数M,M代表窗口的大小,M<100000,且M<N。 输出 窗口…...

51单片机快速入门之按键应用拓展
51单片机快速入门之按键应用拓展 LED的点动控制: 循环检测,当key 为0 时 led 亮 反之为熄灭 while(1){ if(key!1) { led0; }else { led1; } } LED的锁定控制: 当按钮按下,led取反值 while(1) { if(key!1) { led!led; } } LED的4路抢答控制: bz默认为0 !bz 取反值,循环启动…...

数据库 - MySQL的事务
目录 前言 一、事务的特性 (一)原子性 (二)一致性 (三)隔离性 (四)持久性 二、事务的控制语句 三、事务隔离级别 (一)读未提交 (二&…...

【Python机器学习】NLP信息提取——提取人物/事物关系
目录 词性标注 实体名称标准化 实体关系标准化和提取 单词模式 文本分割 断句 断句的方式 使用正则表达式进行断句 词性标注 词性(POS)标注可以使用语言模型来完成,这个语言模型包含词及其所有可能词性组成的字典。然后,该…...

vector类
一、STL库 vector 1.1 vector的介绍 vector英文意思为向量:向量是表示大小可以改变的数组的序列容器。 指向其元素的常规指针上的偏移量来访问其元素,并且与数组中的效率一样高。但与数组不同,它们的大小可以动态变化,其存储由容…...

python常见的魔术方法
什么是魔术方法 Python类的内置方法,各自有各自的特殊功能,被称之为魔术方法 常见的魔术方法有以下: __init__:构造方法 __str__:字符串方法 __lt__:小于、大于符号比较 __le__:小于等于、大于等于符合比较 __eq__:等于符合比较__init__ c…...

自动化测试常用函数:弹窗、等待、导航、上传与参数设置
目录 一、弹窗 1. 警告弹窗确认弹窗 2. 提示弹窗 二、等待 1. 强制等待 2. 隐式等待 3. 显示等待 三、浏览器导航 1. 打开网站 2. 浏览器的前进、后退、刷新 四、文件上传 五、浏览器参数设置 1. 设置无头模式 2. 页面加载策略 一、弹窗 弹窗是在页面是找不到任何…...

【必看】2024国赛选题分布情况分析及数模国赛答辩指南~答辩不走弯路
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ 紧张刺激的数模国赛已经过去一段时间,各赛区的成绩发布也在陆续进…...

微服务注册中⼼1
1. 微服务的注册中⼼ 注册中⼼可以说是微服务架构中的”通讯录“ ,它记录了服务和服务地址的映射关系。在分布式架构中, 服务会注册到这⾥,当服务需要调⽤其它服务时,就这⾥找到服务的地址,进⾏调⽤。 1.1 注册中⼼的…...

我设置了路由器自动切换ip,这会让我的账号登录地址经常改变吗
是的,路由器设置自动切换IP可能会导致你的账号登录地址经常改变。 这是因为当路由器切换IP时,外部网络所看到的你的设备IP地址也会随之改变。对于很多跨境电商、社交媒体或者银行账户等需要较高安全性的系统来说,经常变动的IP地址可能会被视…...

Nginx 限流实战教程和技巧
Nginx限流是一种重要的技术手段,用于保护服务器资源,防止因过度请求而导致的服务不可用。以下是一个详细的Nginx限流教程,包括限流原理、常用模块和配置示例。 一、Nginx限流原理 Nginx限流主要基于两种算法:漏桶算法和令牌桶算…...

AlphaFold3 | 详解 AlphaFold3 的模型结构及其在不同类型的预测实验中的表现
Jumper 本文将介绍 24 年 5 月发布的 Alaphafold3,其以“使用 AlphaFold 3 进行生物分子相互作用的精确结构预测”为标题发表在《nature》上,通讯作者为 Jumper。 Jumper 具有物理、化学、生物和计算方面的丰富背景。Jumper 本科学的是物理和数学&#…...

公交IC卡收单管理系统 多处 SQL注入致RCE漏洞复现
0x01 产品简介 公交IC卡收单管理系统是城市公共交通领域中不可或缺的一部分,它通过集成先进的集成电路技术(IC卡)实现了乘客便捷的支付方式,并有效提高了公共交通运营效率。系统集成了发卡、充值、消费、数据采集、查询和注销等多个功能模块,为公交公司和乘客提供了全面、…...

淘客系统开发之卷轴模式系统源码功能分析
随着互联网技术的快速发展,电商行业不断创新,探索更加高效、有趣的用户参与机制。其中,卷轴模式作为一种新兴的商业模式,以其独特的积分兑换和任务系统,在淘客系统开发中得到了广泛应用。本文将从技术角度,…...