📜  Python – Itertools.compress()

📅  最后修改于: 2022-05-13 01:54:33.318000             🧑  作者: Mango

Python – Itertools.compress()

Python 的 Itertool 是一个模块,它提供了在迭代器上工作以生成复杂迭代器的各种函数。该模块可作为一种快速、高效的内存工具,可单独使用或组合使用以形成迭代器代数。

注意:更多信息请参考Python Itertools

压缩()

itertools.compress()属于终止迭代器的类别。这意味着这些迭代器用于处理短输入序列并根据所使用方法的功能生成输出。

Compress():此迭代器根据作为其他参数传递的布尔列表值选择性地从传递的容器中选择要打印的值。与 boolean true 相对应的参数被打印,否则全部被跳过。

在此,我们为函数提供两个参数。第一个参数是迭代器,第二个参数是选择器True/1False/0 。如果第一个参数对应的选择器为True ,则打印对应的数据,我们将得到相应的输出。

句法:

compress(iter, selector)

示例 1:

# Python code to demonstrate the working of   
# compress() 
  
  
import itertools
import operator
  
  
Codes =['C', 'C++', 'Java', 'Python']
selectors = [False, False, False, True]
  
Best_Programming = itertools.compress(Codes, selectors)
  
for each in Best_Programming:
    print(each)

输出:

Python

在上面的代码中,在 Codes 列表中,我们存储了四个变量,在选择器列表中,我们有四个布尔值。当我们使用itertools.compress()时,值 False 分配给'C',False 分配给'C++',False 分配给' Java',True 分配给' Python'。现在,在遍历循环时,我们将获得分配值 True 的输出。因此,我们在迭代“最佳编程”时只得到“Python”。

示例 2:

# Python code to demonstrate the working of   
# compress() 
  
  
  
import itertools
import operator
  
  
example = itertools.compress('ABCDE', [1, 0, 1, 0, 0])
  
for each in example:
    print(each)

输出:

A
C