【问题标题】:Python: How do I get a list of permutations of subsets?Python:如何获得子集排列的列表?
【发布时间】:2013-04-09 14:10:13
【问题描述】:

假设我有以下列表:

L = [1, 2, 3]

我想得到以下输出:

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

除了我什至不确定我是否正确地表达了这个问题。它基本上就像不重复的排列组?

【问题讨论】:

  • 我相信他想做的就是把所有的排列都用循环表示法。
  • 您在寻找类似 powerset 的东西吗? docs.python.org/2/library/itertools.html#recipes
  • 我想我可以编写一个程序来生成你的确切输出,但我不明白你是如何得到你的输出的......你能解释一下吗?

标签: python permutation combinations


【解决方案1】:

我不太清楚你是如何得出你的输出的(另一个例子或更好的描述可能会有所帮助),但答案可能在于itertools,其中包含许多用于处理组合和排列的工具:

>>> data = [1, 2, 3]
>>> list(zip(reversed(data), itertools.combinations(data, 2)))
[(3, (1, 2)), (2, (1, 3)), (1, (2, 3))]

【讨论】:

  • 获得否决票的理由会很有用 - 虽然我同意这可能不是完美的答案,但考虑到问题的模棱两可,这是最好的。这绝对不是“没用”。
猜你喜欢
  • 2016-02-18
  • 1970-01-01
  • 1970-01-01
  • 2015-11-22
  • 1970-01-01
  • 2023-02-17
  • 2021-03-30
  • 1970-01-01
  • 2017-09-27
相关资源
最近更新 更多