繁体   English   中英

如何制作 5x5 列表?

[英]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)

脚步:-

  1. 首先创建 5 X 5 网格
  2. 从列表列表中创建展平列表(5 x 5 网格)
  3. 创建一个字典,将网格中的一组随机数作为键,将每个数字的频率作为值
  4. 按升序对字典值进行排序并返回三个最常见的值,作为元组列表,(键,值)对。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM