islice() 是 Python 标准库 itertools 中的一个函数,他可以选取序列的子集并以迭代器的方式返回,具体使用方法如下:
函数签名
itertools.islice(iterable, start, stop[, step])
参数说明
- iterable: 序列
- start:选取的开始切片索引位置,包含该索引位置的元素
- stop: 选取的结束切片索引位置,不包含该索引位置的元素
- step: 切片的步长,默认为 1
返回值
islice() 函数返回的是一个迭代器对象,当迭代器到达停止位置时会自动停止,但如果 start 或 stop 大于序列长度,islice() 不会报错,而是在迭代器结束后停止。
示例说明
示例一:选取列表中的前5个元素
from itertools import islice
lst = [1, 2, 3, 4, 5, 6, 7, 8]
iter_ = iter(lst)
result = islice(iter_, 5)
for item in result:
print(item)
# 输出结果
# 1
# 2
# 3
# 4
# 5
示例二:选取列表中的奇数元素
from itertools import islice
lst = [1, 2, 3, 4, 5, 6, 7, 8]
result = islice((i for i in lst if i % 2 != 0), None)
for item in result:
print(item)
# 输出结果
# 1
# 3
# 5
# 7
在第二个示例中,我们使用了一个生成器表达式来生成满足条件的奇数元素,然后使用 islice() 函数来选取所有的元素,因为我们不知道选取元素的数量,所以 step 参数使用默认值 None.