【问题标题】:All combinations for specific arrangement- python特定排列的所有组合 - python
【发布时间】:2020-06-03 02:43:19
【问题描述】:

我想为不同的具体安排计算所有组合,并将它们放在单独的列表中。

元素的一般形式类似于[[a#, b#], [a#, b#]],其中# 可以取1-4 之间的数字。

我们的目标是列出所有可能导致某种形式/排列的元素。比如表单是[[ai, bi], [ai, bi]],其中 i 可以是 1-4 之间的值。 此表单的输出如下所示,

A=[[[a1, b1], [a1, b1]], [[a2, b2], [a2, b2]], [[a3, b3], [a3, b3]], [[a4, b4], [a4, b4]]]

其他 i 形式是 [[ai, bj], [ai, bj]],其中 i 和 j 的值可以是 1-4 但 i≠j,结果将是所有可能性的列表。类似地,形式可以是 [[ai, bj], [ak, bj]],其中 i, j, k 可以取 1-4 的值,但 i≠j≠k

我什至不知道如何解决这个问题,所以我没有开始编写任何代码,所以我只是在寻找有关如何解决这个问题的输入或建议。

【问题讨论】:

标签: python list combinations


【解决方案1】:

正如您的示例所示,我认为您不想使用任何组合。格式可能适合您。

z = []
for i in range(1, 5): 
    x = [] 
    y = [] 
    x.append('a{}'.format(i)) 
    x.append('b{}'.format(i)) 
    y.append(x) 
    y.append(x)
    z.append(y)

【讨论】:

  • 嘿,太好了,谢谢!只是一个休闲,无论如何都没有报价中的输出?截至目前它给出了[[['a1','b1'],['a1','b1']],我想知道是否有办法让它像[[[a1,b1], [a1, b1]],
  • 引号显示这些是字符串。所以如果你对字符串感兴趣,一定要用'或"。关于标准类型可以看here。
  • 我并没有真正将它们视为字符串而不是符号或变量?如果这是有道理的。有没有办法把它改成不再是字符串?
【解决方案2】:
A = [[[f'a{i}', f'b{i}']] * 2 for i in range(1, 5)]

对于不支持 f 字符串的早期版本的 python

A = [[['a' + str(i), 'b' + str(i)]] * 2 for i in range(1, 5)]

【讨论】:

  • 嘿,抱歉,这是一个无效的语法错误。另外,f 是关于什么的。对于第二种情况,当 j 出现时,我会像这里一样格式化它吗?感谢大家的帮助!
  • 你可以阅读f字符串here
  • 非常感谢。我还没有弄清楚如何将 j、k、l 合并到其中。你有什么意见吗?
猜你喜欢
  • 2017-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多