python - 创建具有负值排列的列表

标签 python list permutation

任何人都可以帮助创建给定列表中具有负值的列表吗?

例如:

values = [1, 2, 3]

期望的输出是

[[-1, 2, 3], [1, -2, 3], [1, 2, -3],[-1, -2, 3], [1, -2, -3], [-1, 2, -3], [-1, -2, -3]]

最佳答案

生成 3 倍 [1, -1] 的乘积,并将结果与​​输入列表相乘:

from itertools import product

values = [1, 2, 3]
[[num * mul for num, mul in zip(values, combo)]
 for combo in product([1, -1], repeat=len(values))]

演示:

>>> from itertools import product
>>> values = [1, 2, 3]
>>> [[num * mul for num, mul in zip(values, combo)] for combo in product([1, -1], repeat=len(values))]
[[1, 2, 3], [1, 2, -3], [1, -2, 3], [1, -2, -3], [-1, 2, 3], [-1, 2, -3], [-1, -2, 3], [-1, -2, -3]]

输出顺序与您指定的略有不同,但会生成相同的值,加上原始列表作为第一个元素。

关于python - 创建具有负值排列的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35041522/

相关文章:

python - 安装Python 3.8.1 --with-openssl --without-root/apt/yum

python - 有没有更好的方法可以在 Python 中使用键但没有值将列表转换为字典?

ios - 在 Swift 中计算字符串的所有排列

python - 置换算法分析

python - Raspberry Pi Web 应用程序配置向导

python - 登录 admin 后 Django 开发服务器停止

c# - TypeDescriptor 和子元素

list - 在自己的行上打印列表的所有项目

java - 正则表达式:匹配具有重复字符的排列,其中一个字符不能出现多次

python - wxpython 应用程序中严重的内存泄漏