大家好,我是皮皮。
一、前言
前几天在某乎上看到了一个粉丝提问,编写程序,随机产生30个1-100之间的随机整数并存入5行6列的二维列表中,按5行6列的格式输出?这里拿出来跟大家一起分享下。

二、实现过程
后来问了【ChatGPT】,给出的回答如下:
以下是一个Python程序来实现上述任务:
1# coding:utf-8 2 3# @Time : 2023/5/16 20:05 4# @Author: Python进阶者 5# @公众号: Python爬虫与数据挖掘 6# @website : http://pdcfighting.com/ 7# @File : 111.py 8# @Software: PyCharm 9import random 10 11# 随机生成30个1到100之间的整数 12numbers = [random.randint(1, 100) for i in range(30)] 13 14# 将生成的数字按5行6列的格式存储到二维列表中 15rows = 5 16cols = 6 17matrix = [[0 for j in range(cols)] for i in range(rows)] 18k = 0 19for i in range(rows): 20 for j in range(cols): 21 matrix[i][j] = numbers[k] 22 k += 1 23 24# 按5行6列格式输出二维列表中的数字 25for i in range(rows): 26 for j in range(cols): 27 print(matrix[i][j], end="\t") 28 print("\n")
解释:
random.randint(1, 100)是用来生成1到100之间的随机整数的函数。- 列表推导式
[random.randint(1, 100) for i in range(30)]用来生成包含30个1到100之间随机整数的列表。 [[0 for j in range(cols)] for i in range(rows)]是用来生成一个5行6列的二维列表,列表中所有元素都初始化为0。for循环用来将随机数填充到二维列表中。- 最后一个
for循环用来按5行6列的格式输出二维列表中的数字。
运行之后,可以得到预期的结果:

后来看到问答区还有其他的解答,一起来看。下面是【江夏】的回答:
1import random 2# 生成 30 个 1-100 的随机整数,并存入 5 行 6 列的二维列表中 3data = [[random.randint(1, 100) for j in range(6)] for i in range(5)] 4 5# 输出二维列表 6for i in range(5): 7 for j in range(6): 8 print(f"{data[i][j]:2d}", end=" ") 9 print() 10 11# 统计最大值、最小值、平均值和大于平均值、小于平均值的个数 12max_val = max(map(max, data)) 13min_val = min(map(min, data)) 14sum_val = sum(map(sum, data)) 15avg_val = sum_val / (5 * 6) 16above_avg_count = len([i for row in data for i in row if i > avg_val]) 17below_avg_count = len([i for row in data for i in row if i < avg_val]) 18 19# 输出统计结果 20print(f"最大值:{max_val}") 21print(f"最小值:{min_val}") 22print(f"平均值:{avg_val:.2f}") 23print(f"大于平均值的个数:{above_avg_count}") 24print(f"小于平均值的个数:{below_avg_count}")
得到的结果如下所示:

三、总结
大家好,我是皮皮。这篇文章主要盘点了一个Python编程题目,帮助粉丝顺利解决了问题。
【提问补充】温馨提示,大家在群里提问的时候。可以注意下面几点:如果涉及到大文件数据,可以数据脱敏后,发点demo数据来(小文件的意思),然后贴点代码(可以复制的那种),记得发报错截图(截全)。代码不多的话,直接发代码文字即可,代码超过50行这样的话,发个.py文件就行。
[图片上传失败...(image-1a7ef4-1684477105625)]
