如何从一组列表中获取笛卡尔积(每种可能的值组合)?
输入:
somelists = [
[1, 2, 3],
['a', 'b'],
[4, 5]
]
Run Code Online (Sandbox Code Playgroud)
期望的输出:
[(1, 'a', 4), (1, 'a', 5), (1, 'b', 4), (1, 'b', 5), (2, 'a', 4), (2, 'a', 5) ...]
Run Code Online (Sandbox Code Playgroud) 我知道itertools,但它似乎只能生成排列而不重复.
例如,我想为2个骰子生成所有可能的骰子.所以我需要[1,2,3,4,5,6]的大小为2的所有排列,包括重复:(1,1),(1,2),(2,1)......等等
如果可能的话,我不想从头开始实现这一点
我有一个列表L = [a,b,c],我想生成一个元组列表:
[(a,a), (a,b), (a,c), (b,a), (b,b), (b,c)...]
Run Code Online (Sandbox Code Playgroud)
我试过做L*L但它不起作用.有人能告诉我如何在python中得到它.
来自 python 的文档:https : //docs.python.org/2/library/itertools.html#itertools.combinations
见组合_with_replacement:“#组合_与替换('ABC',2)--> AA AB AC BB BC CC”
我想使用相同的功能,附带生成“BA”、“CA”和“CB”的奖励。
python combinations combinatorics cartesian-product python-itertools
如何将一个元素与排序列表中的下一个元素进行比较,并打印出它们的差异.任何帮助,将不胜感激.
Eg:
lst = [3.18,10.57,14.95,...]
10.57 - 3.18 = 7.39
14.95 - 10.57 = 4.38
...
Run Code Online (Sandbox Code Playgroud) 我有两个清单:
object = ['square','circle','triangle']
description = ['red','green']
Run Code Online (Sandbox Code Playgroud)
我想要输出一个词典列表:
{'square': 'red', 'circle': 'red', 'triangle': 'red'}
{'square': 'red', 'circle': 'red', 'triangle': 'green'}
{'square': 'green', 'circle': 'red', 'triangle': 'green'}
Run Code Online (Sandbox Code Playgroud)
等等
所以对象不重复,但描述可能会.每个字典都有原始的对象列表作为其键.
我不确定我想要的算法的名称,所以我找不到正确的算法.(我已经查看了python中两个列表的排列,但是它正在寻求不同的结果.两个列表的排列是同一个问题,但是使用OCAML.)