[英]How do I toggle between 1 and 0 within a 5x5 matrix and update the matrix? Lights out logic game
[英]How do I make a 5x5 list?
我尝试使用 for 循环,但我只得到 5 1 2 1 1 4 1 2 2 4 2 1 5 2 4 5 4 2 3 2 4 5 3 2 3 而不是实际的 5x5 网格。 (只是为了让您了解上下文:我稍后应该创建一个字典,其键是 5x5 列表中的随机数,其值是该数字出现的次数,然后打印三个最常见的数字。)
from random import randint
for i in range(1,6):
for j in range(1,6):
print("{:3d}".format(randint(1,5)),end=" ")
简单易用的列表理解来创建 5x5 列表
from random import randint
n = 5
grid = [[randint(1, 5) for _ in range(n)] for i in range(n)]
print(grid)
输出
[[5, 3, 3, 5, 5], [3, 2, 4, 3, 3], [3, 3, 3, 3, 4], [3, 4, 5, 3, 3], [5, 4, 1, 2, 3]]
解释
我们正在创建一个列表列表
创建 n 个元素的内部嵌套列表(内部 for 循环)
[randint(1, 5) for _ in range(n)]
堆叠内部列表(循环 i)
[[...] for i in range(n)]
import random
import itertools
import operator
five_dim = [[random.randint(1,5) for b in range(0,5)]for a in range(0,5)]
flat_list = [num for num in itertools.chain(*five_dim)]
key_set = set(flat_list)
freq_dict ={k: flat_list.count(k) for k in key_set}
x= sorted(freq_dict.items(), key = operator.itemgetter(0))[0:3]
print(x)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.