使用python填充5 * 5列表

时间:2011-04-16 01:01:10

标签: python list

我有一个列表[5] [5]来填充...它看起来像一个包含5列和5行的表。 每个单元格可以是一个或零。 我想找到可能存在的不同2 ^ 25的可能性。每个可能性是5 * 5表/列表中0或1的组合

我该怎么做?使用嵌套循环还是什么?

2 个答案:

答案 0 :(得分:3)

我建议您先从1x1 list开始,然后检查是否可以显示两种可用的组合:

[[0]]
[[1]]

接下来,尝试2x2 list。显示有16个不同的list

[[0, 0], [0, 0]]
[[0, 0], [0, 1]]
[[0, 0], [1, 0]]
[[0, 0], [1, 1]]
[[0, 1], [0, 0]]
[[0, 1], [0, 1]]
[[0, 1], [1, 0]]
[[0, 1], [1, 1]]
[[1, 0], [0, 0]]
[[1, 0], [0, 1]]
[[1, 0], [1, 0]]
[[1, 0], [1, 1]]
[[1, 1], [0, 0]]
[[1, 1], [0, 1]]
[[1, 1], [1, 0]]
[[1, 1], [1, 1]]

如果您的算法适用于1x1和2x2,那么您应该能够将其概括为打印5x5。

祝你好运!

更新

既然你似乎还在苦苦挣扎,这里有一点额外的帮助。

将此问题分解为更小的问题。我首先要生成值。如果您忽略上面示例中的list符号,您将看到值的序列是地球上每个计算机科学家都能识别的值。使用bin()str.zfill()在Python中生成也很容易。

第二个问题是将它们放入list。这也不是太难。假设序列中的第一个值是'0000'。您知道您的list是两行两列。您可以将前两个字符放入列表中,并将该列表放入列表中。然后将接下来的两个字符放入一个列表中,并将该列表附加到前一个列表中。完成。对序列中的每个值重复。

希望这有帮助。

答案 1 :(得分:0)

你可以尝试:

import itertools
gen = itertools.product((0,1),repeat=25)

创建生成器以获取1d中的所有组合,然后根据需要重新整形数据。