Python函数解释
程序的这一部分做什么(在上找到) 它实现了向后兼容性。请参阅Python函数解释,python,Python,程序的这一部分做什么(在上找到) 它实现了向后兼容性。请参阅产品的文档: itertools.product(*iterables[,repeat]) 输入变量的笛卡尔积 等效于生成器表达式中的嵌套for循环。例如,乘积(A,B)返回的值与((x,y)表示A中的x表示y中的y相同 B) 嵌套循环像里程表一样循环,最右边的元素在每次迭代中前进。这种模式创建了一个词典 排序,以便在对输入的iterables进行排序后,产品 元组按排序顺序发出 要计算iterable自身的乘积,请使用可选的repe
产品的文档
:
itertools.product(*iterables[,repeat])
输入变量的笛卡尔积
等效于生成器表达式中的嵌套for循环。例如,乘积(A,B)返回的值与((x,y)表示A中的x表示y中的y相同
B)
嵌套循环像里程表一样循环,最右边的元素在每次迭代中前进。这种模式创建了一个词典
排序,以便在对输入的iterables进行排序后,产品
元组按排序顺序发出
要计算iterable自身的乘积,请使用可选的repeat关键字参数指定重复次数。对于
例如,产品(A,repeat=4)表示与产品(A,A,A)相同
此函数相当于以下代码,但实际实现不会在中生成中间结果
内存:
def product(*args, **kwds):
# product('ABCD', 'xy') --> Ax Ay Bx By Cx Cy Dx Dy
# product(range(2), repeat=3) --> 000 001 010 011 100 101 110 111
pools = map(tuple, args) * kwds.get('repeat', 1)
result = [[]]
for pool in pools:
result = [x+[y] for x in result for y in pool]
for prod in result:
yield tuple(prod)
请注意文档中的代码如何与您找到的匹配
我不明白为什么他们在文件中提到了itertools.permutations
。。。
守则:
list(set((product(*[range(2) for _ in range(length)]))))
AFAIK相当于:
list(product(*[range(2) for _ in range(length)]))
它只计算
长度
范围(2)
iterables的乘积。是的,精确地计算置换。毕竟这是一个非图解算器。
list(set((product(*[range(2) for _ in range(length)]))))
list(product(*[range(2) for _ in range(length)]))