freeCodeCamp/guide/chinese/python/itertools/index.md

51 lines
1.8 KiB
Markdown
Raw Normal View History

---
title: Itertools
localeTitle: Itertools
---
Itertools是一个函数的python模块它返回生成器只在迭代时才起作用的对象。 itertool函数的一些示例包括但不限于chainimapproduct和compress
### 链()
chain函数将几个迭代器作为参数并返回一个迭代器它生成所有这些迭代器的内容就像它们来自一个序列一样。
```py
import itertools
list(itertools.chain([1, 2], [3, 4]))
# Output
# [1, 2, 3, 4]
```
### islice
islice函数返回一个迭代器它通过索引从输入迭代器返回所选项。它采用与列表的切片运算符相同的参数startstop和step。启动和停止是可选的。
```py
import itertools
list(itertools.islice(count(), 5))
# Output
# [0,1, 2, 3, 4]
```
### izip
izip返回一个迭代器它将几个迭代器的元素组合成元组。它的工作方式类似于内置函数zip除了它返回迭代器而不是列表。
```py
import itertools
list(izip([1, 2, 3], ['a', 'b', 'c']))
# Output
# [(1, 'a'),(2, 'b'),(3, 'c')]
```
组合迭代器:
迭代器参数结果 productpq... \[repeat = 1\]笛卡尔积相当于嵌套的for循环 permutationsp \[r\] r-length元组所有可能的排序没有重复的元素 组合pr r-length元组按排序顺序没有重复元素 _与_ replacementpr r-length元组的组合按排序顺序具有重复元素 产品('ABCD',重复= 2AA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DD 排列('ABCD'2AB AC AD BA BC BD CA CB CD DA DB DC
组合('ABCD'2AB AC AD BC BD CD
_与_替换组合'ABCD'2AA AB AC AD BB BC BD CC CD DD
来源HTTPS//docs.python.org/3/library/itertools.html