Pythonitertools.产品,指定排列中的元素用法

2024-04-18 07:39:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图生成两个值的可能排列列表,每个值只包含相等的数字。你知道吗

最接近的是乘积置换,然后是一个计数器,但这显然是错误的方法,对于超过20的值,它会消耗大量内存。你知道吗

lst = ['d', 'r']
correct = 0
for x in product(lst, repeat=20):
    y = Counter(x)
    if y['d'] == y['r']:
        correct += 1
print(correct)

我也尝试过一组置换,但由于某些原因,这比乘积算法效率更低:

lst = ['d', 'r'] * 10
print(len(set(permutations(lst)))

有没有人能建议一种不同的工具,或者一种将产品的生成限制为每个元素数量相等的迭代的方法?你知道吗


Tags: 方法内存in列表for错误计数器数字