python - 从数组生成排列列表

标签 python algorithm

这可能很简单,但我是这类编程的新手,并且努力思考我需要做什么。

我正在尝试构建一个过滤器列表以应用于图像。我有七个可以应用的过滤器,每个过滤器可以是 01(打开或关闭)。过滤器是:

filters = [
    'Exposure',
    'Noise',
    'Pressure',
    'XQ Mix',
    'Invert',
    'Desaturate',
    'Equalise'
]

我想要生成的是这些过滤器在其状态下的所有可能排列。应该有 128 种可能的排列 (2^7),但是当我运行以下代码时,我得到 5080 种排列:

perms = permutations(filters)
perm_count = 0
for p in perms:
    print(p)
    perm_count = perm_count + 1

print str(perm_count) + ' total permutations'

我可能使用了错误的方法——所有这一切所做的只是打乱过滤器的顺序,我不关心这些。

我尝试更新过滤器列表,使每个过滤器有两个项目,例如。 ['Exposure0', 'Exposure1'] 等,但是针对此运行 combinations(filters, 7) 会给我重复的值(例如,打开和关闭状态相同列表)。

我在这里苦苦挣扎——任何人都可以在正确的方向上插入我接近这样的事情吗?查看文档,类似于 product('ABCD', 'xy') --> Ax Ay Bx By Cx Cy Dx Dy 似乎是正确的,但我仍然无法理解它。感谢帮助。

最佳答案

据我所知,您正在寻找的是动力集。 以下是此方法的一些实现: Getting the subsets of a set in Python

关于python - 从数组生成排列列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33754783/

相关文章:

python - Sklearn K表示Clustering convergence

Python:os.path.isfile 无法识别以数字开头的文件

algorithm - 2 个神经元的 ANN 可以解决 XOR 问题吗?

algorithm - 使用循环不变量证明堆排序的正确性

java - 多线程——避免和处理数据库死锁

algorithm - ACM MIPT - 一个矩形 - 样本输入 2 不正确?

python - 是否可以转换 4 :3 pictures to 16:9 using Python (2. 7)

python - Cloudfront 提供通过 AWS CDK Python 为 S3 存储桶源创建的访问被拒绝响应,无需公共(public)访问

python - 多幅图像和一幅基本图像之间的欧氏距离

algorithm - 如何更好地理解“每次比较一次”的二进制搜索?