不使用ITERTOOL在python中创建布尔列表的组合/排列

2024-10-01 11:25:00 发布

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

l = [True, True , False]

不使用itertools模块。在

如何在新的list中创建l的置换

^{pr2}$

基本上这就是我要做的:

allorderings = itertools.product ([False, True], repeat = n)

Tags: 模块falsetrueproductlistrepeatitertoolspr2
3条回答

我能想到的最简单的方法是在同一个项目列表中迭代三次,然后只收集唯一的项目,如下面所示

l = set([True, True, False])
print {(i, j, k) for i in l for j in l for k in l}

在纯python中使用来自官方的docs的等价物?在

使用itertools.permutations

import itertools
l = [True, True , False]
newlist = list(itertools.permutations(l))

编辑:根据您的问题,您需要的排列之一是(True, True, True),它根本不是列表l的排列。这个答案给你一个技术意义上的列表排列,你可能需要做额外的工作来实现你在问题中所显示的内容(当然,除非那是一个打字错误)。在

相关问题 更多 >