用Python填充5*5列表

0 投票
2 回答
514 浏览
提问于 2025-04-16 15:50

我有一个5行5列的列表,想把它填满。这个列表就像一个表格,每个格子里可以是0或者1。我想找出所有可能的组合,总共有2的25次方种可能性。每种可能性就是在这个5*5的表格里填入0或1的不同方式。

我该怎么做呢?是用嵌套循环之类的方法吗?

2 个回答

0

你可以试试:

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

创建一个生成器,来获取所有的一维组合,然后根据需要调整数据的形状。

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表示法,你会发现这些值的序列是每个计算机科学家都能认出的。这在Python中也很容易生成,可以使用bin()str.zfill()

第二个问题是把这些值放进list中。这也不难。假设你序列中的第一个值是'0000'。你知道你的list是两行两列。你可以把前两个字符放进一个list中,然后把这个list放进另一个list里。接着把下两个字符放进一个新的list,然后把这个新list添加到之前的list中。完成了。对序列中的每个值重复这个过程。

希望这能帮到你。

撰写回答