【问题标题】:Python - How to pass iterables into product()?Python - 如何将可迭代对象传递给 product()?
【发布时间】:2012-06-22 01:01:37
【问题描述】:

我试图在 Python 中使用 product() 函数。我知道 product() 需要一堆 iterables 并做所有这些的笛卡尔积。

现在我将所有的可迭代对象放在一个列表中。我想知道如何一次传递该列表中的所有迭代?我不能将列表直接传递给产品,因为产品()会将其视为一个可迭代的。 例如,我有一个列表列表:

[[1,2,3],['a','b']]

如何将 [1,2,3] 和 ['a','b'] 传递给产品,使其等效于 product([1,2,3],['a','b' ])?

提前致谢!

【问题讨论】:

    标签: python product


    【解决方案1】:
     l = [[1, 2, 3], ('a', 'b')]
     product(*l)
    

    这叫Unpacking argument lists

    【讨论】:

      【解决方案2】:

      使用argument expansion(解包):

      vals = [[1,2,3],['a','b']]
      product(*vals)
      

      它的工作原理类似于:

      >>> x, y = [[1,2,3],['a','b']]
      >>> x
      [1, 2, 3]
      >>> y
      ['a', 'b']
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-05-06
        • 2013-10-12
        • 2021-11-08
        • 2018-11-09
        • 1970-01-01
        • 1970-01-01
        • 2013-06-03
        相关资源
        最近更新 更多