深入理解迭代器,笛卡尔积,from itertools import product 小白一看就会

在这里插入图片描述


一、product()是什么?

Python中product()是内置函数itertools提供的一个工具函数,可以计算多个可迭代对象的笛卡尔积。product()接受一个或多个可迭代对象作为参数,然后将它们的每个元素进行组合,返回一个新的迭代器。

二、product()的具体使用案例

例如,假设我们有两个可迭代对象AB

>>> A = [1, 2, 3]
>>> B = ['a', 'b']

我们可以使用product()来计算它们的笛卡尔积,如下所示:

from itertools import product
C = list(product(A, B))
print(C)
# [(1, 'a'), (1, 'b'), (2, 'a'), (2, 'b'), (3, 'a'), (3, 'b')]

代码详细分析

  1. 这里使用了from itertools import productitertools模块中的product()函数导入了当前的命名空间中。然后,我们调用product(A, B)来计算AB的笛卡尔积,并使用list()将其转换为一个列表。
  2. 我们会注意到,product()函数返回的结果是一个迭代器,如果迭代的量非常大,可以使用迭代器来避免占用大量内存,而不必将其全部储存在内存中。
  3. product()函数可以接受任意数量的可迭代对象作为参数,并计算它们的笛卡尔积。如果我们有三个以上的可迭代对象,我们可以像这样使用product()
C = list(product(A, B, [1, 2]))
print(C)
[(1, 'a', 1), (1, 'a', 2), (1, 'b', 1), (1, 'b', 2), (2, 'a', 1), (2, 'a', 2), (2, 'b', 1), (2, 'b', 2), (3, 'a', 1), (3, 'a', 2), (3, 'b', 1), (3, 'b', 2)]

这里我们传入了三个可迭代对象AB和一个包含两个元素的列表[1, 2],然后计算它们的笛卡尔积。


总结

总之,product()函数是一个非常有用的工具函数,可以方便地计算多个可迭代对象的笛卡尔积。

猜你喜欢

转载自blog.csdn.net/qlkaicx/article/details/131239657