【问题标题】:Creating an array with unique rows and columns创建具有唯一行和列的数组
【发布时间】:2015-04-21 23:43:13
【问题描述】:

如何在 python 中创建具有唯一行和列的数组?

  [1, 2, 3, 4] 

  [2, 3, 4, 1]

  [4, 1, 2, 3]

  [3, 4, 1, 2]

【问题讨论】:

  • 它必须是随机的,还是你可以每次将行旋转一个位置?
  • 看看 itertools 的 permutations 函数。

标签: python arrays list matrix


【解决方案1】:
from itertools import permutations
from random import choice

>>> a = list(permutations([1,2,3,4], 4))
>>> total = [choice(a) for i in range(4)]
>>> total
[(3, 4, 1, 2), (4, 1, 2, 3), (2, 1, 4, 3), (1, 2, 3, 4)]
>>> print(*(' '.join(map(str, item)) for item in total), sep='\n')
3 4 1 2
4 1 2 3
2 1 4 3
1 2 3 4

【讨论】:

    【解决方案2】:

    这可以通过itertools.permutations 方法轻松实现:

    import itertools
    a = [1,2,3,4]
    list(itertools.permutations(a))
    [(1, 2, 3, 4), (1, 2, 4, 3), (1, 3, 2, 4), (1, 3, 4, 2), (1, 4, 2, 3), (1, 4, 3, 2), (2, 1, 3, 4), (2, 1, 4, 3), (2, 3, 1, 4), (2, 3, 4, 1), (2, 4, 1, 3), (2, 4, 3, 1), (3, 1, 2, 4), (3, 1, 4, 2), (3, 2, 1, 4), (3, 2, 4, 1), (3, 4, 1, 2), (3, 4, 2, 1), (4, 1, 2, 3), (4, 1, 3, 2), (4, 2, 1, 3), (4, 2, 3, 1), (4, 3, 1, 2), (4, 3, 2, 1)]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-12
      • 2022-01-22
      • 2021-11-20
      • 1970-01-01
      • 1970-01-01
      • 2012-08-29
      • 2023-04-03
      相关资源
      最近更新 更多