如何从一组列表中获得笛卡尔积(值的所有可能组合)?
输入:
somelists = [
[1, 2, 3],
['a', 'b'],
[4, 5]
]
所需的输出:
[(1, 'a', 4), (1, 'a', 5), (1, 'b', 4), (1, 'b', 5), (2, 'a', 4), (2, 'a', 5) ...]
在Python 2.6+中
import itertools
for element in itertools.product(*somelists):
print(element)
问题内容: 我正在尝试编写一些代码来测试一堆输入参数的笛卡尔积。 我看过了,但是它的功能并不是我想要的。有没有一种简单明了的方法来获取一个字典,每个字典中包含任意数量的键 和 每个值中任意数量的元素,然后生成具有下一个排列的字典? 输入: 输出示例: 问题答案: 好的,感谢@dfan告诉我我在错误的位置查看。我现在知道了: 编辑 :经过多年的Python经验,我认为一个更好的解决方案是接受输入,而
问题内容: 以下代码适用于,它是否也返回重复的笛卡尔积,如果是,如何获得唯一的笛卡尔积? 当我传递包含列表的列表时,这似乎也不起作用 问题答案: 要仅获取唯一元素,可以使用这样的set表示法( 注意: 这不能保证顺序) 或根据Paul Draper的评论,我们可以像这样 如果您也想维护订单 要使您的程序可以使用列表列表,只需将函数声明从 至
问题内容: 我试图解决中提到的问题这篇文章。考虑一个非负整数列表。我想要一套的笛卡尔积。例如,如果我可以使用itertools: 如果您能帮助我知道如何生成任意长度的using ,我将不胜感激。 问题答案: 您可以使用映射的所有项目来,然后解开他们:
问题内容: 我有两个pandas数据框: 获得其笛卡尔积的最佳实践是什么(当然不用像我这样明确地编写它)? 问题答案: 如果每行都有一个重复的键,则可以使用merge生成笛卡尔乘积(就像在SQL中一样)。 输出:
问题内容: 我试图找到两个不同集合的笛卡尔积。我在网上找不到有关列表或字典的笛卡尔积的任何信息。 功率设置也很混乱。 我使用的书中都没有这两个。 你们中的一位可以指出我正确的方向。 问题答案: 对于笛卡尔积,请检出。 对于幂,该文档也给我们的食谱: 例如:
假设我有几个,我会将它们放入另一个列表或其他集合中,所以在调用之前,我不知道我有多少个 应该是: