当前位置: 首页 > news >正文

Python之--列表

定义

由一系列的按特定顺序排列的元素组成。

特点

(1)列表是Python中内置的可变序列

(2)在Python中使用 [ ] 定义列表,元素与元素之间使用英文的逗号分隔

(3)列表中的元素可以是任意的数据类型

列表的创建方式

(1) 使用 [ ] 直接创建列表

语法结构: 列表名=[element1,element2,......elementN]

#直接用[ ]创建
list1=['hello','world',1,2,3]
print(list1)
(2)使用内置函数 list() 创建列表

语法结构: 列表名=list(序列)

#使用内置函数list()创建
list2=list('happy')
print(list2)
list3=list(range(0,10,2))#从0开始计数,计数到9结束,以2为步长
print(list3)
(3)使用列表生成式

核心是 “通过计算 / 筛选生成新元素” (按需计算动态生成列表)。

语法结构:

(1)基本形式 lst=[expression for item in range]

遍历 range 中的每一个元素 item,然后根据 expression 对 item 进行处理,将结果放入新的列表中。

# 示例1:生成包含1到10整数的平方的列表
squares = [i ** 2 for i in range(1, 11)]
print(squares)
# 输出: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]# 示例2:将一个字符串列表中的所有字符串转为大写
words = ["apple", "banana", "cherry"]
upper_words = [word.upper() for word in words]
print(upper_words)
# 输出: ['APPLE', 'BANANA', 'CHERRY']

 

(2)带条件判断形式 lst=[expression for item in range if condition]

遍历 range 中的元素 item 时,会根据 if condition 对元素进行筛选,只有满足条件的元素才会按照 expression 进行处理并放入新列表中。

# 示例1:生成1到20中所有偶数的平方的列表
even_squares = [i ** 2 for i in range(1, 21) if i % 2 == 0]
print(even_squares)
# 输出: [4, 16, 36, 64, 100, 144, 196, 256, 324, 400]# 示例2:从字符串列表中筛选出长度大于5的字符串,并转为大写
long_words = [word.upper() for word in words if len(word) > 5]
print(long_words)
# 假设words = ["apple", "banana", "cherry"]
# 输出: ['BANANA']

 

列表的一些常见操作

这里我直接把用法以代码的形式展示出来并提供运行截图,方便大家对照着理解。

#相加操作
print(list1+list2+list3)#相乘操作
print(list3*3)#找最值
print(max(list3))
print(min(list3))#求和
print(sum(list3))#统计
print(list2.count('o'))#第一次出现位置
print(list2.index('p'))#删除列表
list4=[1,2,3]
print(list4)
del list4[0]
print(list4)
del list4
print(list4)

 大家这里的报错是为了形象地为大家展示,执行 del list4 这个语句以后,list4已经不存在了,所以说 print(list4) 时会报错。

**一开始我比较好奇,用混合型数据列表来找最值可以成功吗(毕竟里面也有好几个整型元素),于是我尝试用 list1 进行找最值 ,但是被报错了,,因为 list1 里有字符串和整数,不同类型无法比较大小

print(max(list1))

列表的遍历

(1)使用遍历循环for遍历列表元素
lst=['hello','world','nice']
# 第一种遍历方式使用遍历循环for遍历列表元素
for item in lst:print(item)
(2)使用for循环,range()函数,len()函数,根据索引进行遍历
lst=['hello','world','nice']
# 第二种遍历方式使用for循环,range()函数,len()函数,根据索引进行遍历
for i in range(0, len(lst)):print(i, '->', lst[i])#i为索引,lst[i]为元素
(3)enumerate函数的使用

语法结构 for index ,item in enumerate(lst): 输出index和item

lst=['hello','world','nice']
# 第三种遍历方式使用enumerate()函数
for index, item in enumerate(lst):print(index, item)#index是序号,不是索引,可以手动修改序号起始值# 手动修改序号的起始值
for index, item in enumerate(lst, start=1):#start不写,直接写成for index, item in enumerate(lst, 1):也可以print(index, item)#现在index的序号从1开始

列表的一些特殊操作方法

列表的方法描述说明
lst.append(x)在列表 lst 最后增加一个元素
lst.insert(index,x)在列表中第 index 位置增加一个元素
lst.clear()清除列表 lst 中所有元素
lst.pop(index)将列表 lst 中第 index 位置的元素取出,并从列表中将其删除
lst.remove(x)将列表 lst 中出现的第一个元素 x 删除
lst.reverse()将列表 lst 中的元素反转
lst.copy()拷贝列表 lst 中的所有元素,生成一个新的列表

列表排序的两种方式

1. 列表对象的 sort 方法

语法:lst.sort(key=None, reverse=False)

  • key:表示排序的规则(可自定义排序依据,如按元素长度、某一属性等 )
  • reverse:表示排序方式(默认 False 为升序,True 为降序 )

作用:直接修改原列表,对列表元素进行排序

#没有指定 key 和 reverse 参数时,默认升序排序,原列表 lst 被直接修改
lst = [5, 3, 8, 1, 2]
lst.sort()
print(lst)#降序排序
lst = [5, 3, 8, 1, 2]
lst.sort(reverse=True)
print(lst)#根据自定义规则排序(比如按字符串长度)
lst = ["apple", "banana", "pear", "kiwi"]
lst.sort(key=len)
print(lst)

2. 内置函数 sorted ()

语法:sorted(iterable, key=None, reverse=False)

  • iterable:表示排序的对象(传入列表、元组等可迭代数据 )
  • key:表示排序的规则(同 sort 方法,自定义排序逻辑 )
  • reverse:表示排序方式(默认 False 为升序,True 为降序 )

作用:不修改原数据,返回一个新的已排序的列表 

#升序排序
lst = [5, 3, 8, 1, 2]
new_lst = sorted(lst)
print(lst)
print(new_lst)#降序排序
lst = [5, 3, 8, 1, 2]
new_lst = sorted(lst, reverse=True)
print(lst)
print(new_lst)#根据自定义规则排序
#1、对多个单词组成的列表进行排序
words = ["banana", "apple", "cherry", "date"]
sorted_words = sorted(words)  # 默认按首字母升序排列
print(sorted_words) #2、拓展:按字典中某个值排序
students = [{"name": "Alice", "age": 20},{"name": "Bob", "age": 18},{"name": "Charlie", "age": 22}
]
#按照字典中 "age" 的值对列表中的字典进行升序排序
new_students = sorted(students, key=lambda x: x["age"])
print(students)
print(new_students)

** 按照字典中 "age" 的值对列表中的字典进行升序排序时,这里使用了匿名函数 lambda 来指定排序规则,我来给大家拓展一下这里的匿名函数 lambda:

lambda是一种创建匿名函数(即没有显式定义函数名的临时函数)的语法。它主要用于快速定义简单的、一次性使用的函数,通常作为参数传递给其他函数(如sorted()、map()、filter()等)。

基本语法

lambda 参数列表: 表达式
  • 参数列表:函数的输入参数(如x、x, y)。
  • 表达式:函数的返回值(只能有一个表达式,不能包含复杂的逻辑)。

等价于

def 函数名(参数列表):return 表达式

 用匿名函数 lambda 的优势

在需要临时传入一个简单函数时非常方便,它能让代码更简洁。

譬如:

# 普通函数定义
def get_age(person):return person["age"]# 等价的 lambda 函数
lambda person: person["age"]#示例2--按字符串长度排序words = ["apple", "banana", "pear"]
sorted_words = sorted(words, key=lambda x: len(x))
# 输出: ['pear', 'apple', 'banana']

lambda 函数的特点

(1)简洁性:无需定义函数名,适合简单逻辑。

(2)一次性使用:通常作为参数传递后就不再使用。

(3)单一表达式:不能包含复杂的语句(如循环、条件判断)。


今天的分享就到这里啦~~

希望今天分享的内容也能帮到你!!

http://www.lryc.cn/news/582722.html

相关文章:

  • 实时音视频通过UDP打洞实现P2P优先通信
  • Python爬虫实战:研究python-nameparser库相关技术
  • nvm npm nrm 使用教程
  • Crazyflie支持MATLAB/Simulink控制 基于NOKOV度量动捕系统实现
  • 安装 asciidoctor-vscode 最新版
  • 【Python篇】PyCharm 安装与基础配置指南
  • Spring AI 基本组件详解 —— ChatClient、Prompt、Memory
  • Fiddler-关于抓取Android手机包,安装证书后页面加载失败,提示当前证书不可信存在安全风险的问题
  • Rust 中字符串类型区别解析
  • Rust 仿射类型(Affine Types)
  • AR/VR 显示画质失真?OAS百叶窗波导案例破难题
  • Linux网络:UDP socket创建流程与简单通信
  • 深入解析 structuredClone API:现代JS深拷贝的终极方案
  • 【RAG知识库实践】数据源Data Source
  • 使用策略模式 + 自动注册机制来构建旅游点评系统的搜索模块
  • 京东商品评论(2)
  • 机器学习(西瓜书) 第三章 线性模型
  • 【PyTorch】PyTorch中torch.nn模块的激活函数
  • Nuxt.js 静态生成中的跨域问题解决方案
  • maven 发布到中央仓库之 Ignore Licence-04
  • FPGA 47 ,MIG 内存接口生成器深度解析( FPGA 中的 MIG 技术 )
  • 手机解压软件 7z:高效便捷的解压缩利器
  • 【AI智能体】智能音视频-基于乐鑫 ESP32 实现音视频通话
  • 从 CODING 停服到极狐 GitLab “接棒”,软件研发工具市场风云再起
  • 20250708-2-Kubernetes 集群部署、配置和验证-使用kubeadm快速部署一个K8s集群_笔记
  • Safetensors与大模型文件格式全面解析
  • 金融行业信息
  • Android 事件分发机制深度解析
  • Apache DolphinScheduler保姆级实操指南:云原生任务调度实战
  • 【Linux服务器】-安装ftp与sftp服务