gpt4 book ai didi

python - 在 Python 的排列下没有元素相同的集合的笛卡尔积

转载 作者:行者123 更新时间:2023-12-02 00:44:05 24 4
gpt4 key购买 nike

我有一些集合,我想对其进行笛卡尔积,效果很好。但是,我想删除这个新集合中在元素排列下相同的所有元素。

例如,拿下面的代码:

import itertools as ittools
x = 2
y = 3
z = 5

flist = list(ittools.product([x,y,z],repeat=3))

for f in flist:
print reduce(lambda a,b: a*b, f)

此代码找到集合 {2,3,5} 的笛卡尔积,并返回结果集中每个元素的所有三个分量的乘积。但是,有些数字会出现多次,例如 12 可以写成 2*2*3、2*3*2 或 3*2*2。我想删除所有这些重复项中的一个实例。

我知道这基本上是一个组合问题,但这似乎在 Python 中可能有一个不错的解决方案,它不涉及像我在这里所做的那样额外传递列表以计算笛卡尔的每个元素的一些标识符产品。

最佳答案

你想要combinations_with_replacement ,不是产品:

itertools.combinations_with_replacement([x, y, z], 3)

关于python - 在 Python 的排列下没有元素相同的集合的笛卡尔积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44958480/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com