如何使用itertools.product计算多个列表的笛卡尔积?

2026-05-08 04:153阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计819个文字,预计阅读时间需要4分钟。

如何使用itertools.product计算多个列表的笛卡尔积?

直接上结论:

常见错误是把列表当参数直接传进去,比如 product([[1,2], [3,4]]) —— 这样只会得到两个元组:(([1, 2],), ([3, 4],)),根本不是笛卡尔积。正确做法是解包:

  • list(product([1,2], [3,4]))[(1, 3), (1, 4), (2, 3), (2, 4)]
  • 三个列表:product([1,2], ['a'], [True, False])
  • 动态数量?用 *lists 解包:product(*list_of_lists)

嵌套列表太多时,repeat 比重复写参数更安全

比如要算 [0,1] × [0,1] × [0,1](即所有 3 位二进制组合),写三遍 [0,1] 容易漏或错位。

阅读全文
标签:Python

本文共计819个文字,预计阅读时间需要4分钟。

如何使用itertools.product计算多个列表的笛卡尔积?

直接上结论:

常见错误是把列表当参数直接传进去,比如 product([[1,2], [3,4]]) —— 这样只会得到两个元组:(([1, 2],), ([3, 4],)),根本不是笛卡尔积。正确做法是解包:

  • list(product([1,2], [3,4]))[(1, 3), (1, 4), (2, 3), (2, 4)]
  • 三个列表:product([1,2], ['a'], [True, False])
  • 动态数量?用 *lists 解包:product(*list_of_lists)

嵌套列表太多时,repeat 比重复写参数更安全

比如要算 [0,1] × [0,1] × [0,1](即所有 3 位二进制组合),写三遍 [0,1] 容易漏或错位。

阅读全文
标签:Python