1.enumerate
enumerate() 接受一个可迭代对象作为输入,并返回一个枚举对象这个枚举对象包含了原始可迭代对象中的每个元素以及对应的索引它允许在循环中同时获取索引和值,这对于需要索引的情况非常方便
作用:在循环中需要同时访问索引和值时非常有用可以简化代码,使得代码更加清晰易读
python"># 定义一个列表
fruits = ['apple', 'banana', 'cherry', 'date']# 使用 enumerate() 迭代列表并打印索引和值
print("使用 enumerate():")
for index, fruit in enumerate(fruits):print(f"索引 {index}: 值 {fruit}")# 使用 enumerate() 创建字典,将列表中的值作为键,索引作为值
print("\n使用 enumerate() 创建字典:")
fruit_dict = {fruit: index for index, fruit in enumerate(fruits)}
print(fruit_dict)
python">结果打印如下:使用 enumerate():
索引 0: 值 apple
索引 1: 值 banana
索引 2: 值 cherry
索引 3: 值 date使用 enumerate() 创建字典:
{'apple': 0, 'banana': 1, 'cherry': 2, 'date': 3}
2.迭代器iter
对于list、string、tuple、dict等这些容器对象,使用for循环遍历是很方便的。在后台for语句对容器对象调用iter()函数。iter()是python内置函数。iter()函数会返回一个定义了next()方法的迭代器对象,它在容器中逐个访问容器内的元素。next()也是python内置函数。在没有后续元素时,next()会抛出一个StopIteration异常,通知for语句循环结束。
迭代器是用来帮助我们记录每次迭代访问到的位置,当我们对迭代器使用next()函数的时候逐个获取了迭代器对象中的数据元素。
可迭代对象:实现了迭代器协议对象。list、tuple、dict都是Iterable(可迭代对象),但不是Iterator(迭代器对象)。但可以使用内建函数iter() ,把这些都变成Iterable(可迭代器对象)。
for item in Iterable 循环的本质就是先通过iter()函数获取可迭代对象Iterable的迭代器,然后对获取到的迭代器不断调用next()方法来获取下一个值并将其赋值给item,当遇到StopIteration的异常后循环结束
3. slice
slice()是Python内置函数之一,用于创建切片对象。切片对象可以用于对序列进行切片操作,如字符串、列表、元组等。
slice() 函数语法格式:slice(start, stop[, step])
其中,start、stop和step都是可选参数,分别表示切片的起始位置、终止位置和步长。
如果不指定start,则默认从序列的起始位置开始;
如果不指定step,则默认为1。step不能为0。
slice()函数返回的是一个切片对象,可以用于对序列进行切片操作。
例如:
lst = [1, 2, 3, 4, 5]
s = slice(1, 4)
lst[s] # [2, 3, 4]
4.lambda
lambda 表达式是Python中的一种简洁的匿名函数表达方式,它用于创建简单的函数,通常在不需要定义完整函数的情况下使用。lambda 表达式的语法非常简洁,适合编写一行的小函数。
其语法格式:lambda 参数1, 参数2, ... : 表达式
- lambda 引导关键字,表示这是一个匿名函数。
- 后面紧跟参数,参数之间用逗号分隔。
- 冒号后是函数的表达式,也就是返回值。
例如: lambda x, y: x + y