大家好,我是皮皮。
前几天在某乎上看到了一个粉丝提问,编写程序,随机产生30个1-100之间的随机整数并存入5行6列的二维列表中,按5行6列的格式输出?这里拿出来跟大家一起分享下。
后来问了【ChatGPT】,给出的回答如下:
以下是一个Python程序来实现上述任务:
# coding:utf-8 # @Time : 2023/5/16 20:05 # @Author: Python进阶者 # @公众号: Python爬虫与数据挖掘 # @website : http://pdcfighting.com/ # @File : 111.py # @Software: PyCharm import random # 随机生成30个1到100之间的整数 numbers = [random.randint(1, 100) for i in range(30)] # 将生成的数字按5行6列的格式存储到二维列表中 rows = 5 cols = 6 matrix = [[0 for j in range(cols)] for i in range(rows)] k = 0 for i in range(rows): for j in range(cols): matrix[i][j] = numbers[k] k += 1 # 按5行6列格式输出二维列表中的数字 for i in range(rows): for j in range(cols): print(matrix[i][j], end="\t") 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列的格式输出二维列表中的数字。运行之后,可以得到预期的结果:
后来看到问答区还有其他的解答,一起来看。下面是【江夏】的回答:
import random # 生成 30 个 1-100 的随机整数,并存入 5 行 6 列的二维列表中 data = [[random.randint(1, 100) for j in range(6)] for i in range(5)] # 输出二维列表 for i in range(5): for j in range(6): print(f"{data[i][j]:2d}", end=" ") print() # 统计最大值、最小值、平均值和大于平均值、小于平均值的个数 max_val = max(map(max, data)) min_val = min(map(min, data)) sum_val = sum(map(sum, data)) avg_val = sum_val / (5 * 6) above_avg_count = len([i for row in data for i in row if i > avg_val]) below_avg_count = len([i for row in data for i in row if i < avg_val]) # 输出统计结果 print(f"最大值:{max_val}") print(f"最小值:{min_val}") print(f"平均值:{avg_val:.2f}") print(f"大于平均值的个数:{above_avg_count}") print(f"小于平均值的个数:{below_avg_count}")
得到的结果如下所示:
大家好,我是皮皮。这篇文章主要盘点了一个Python
编程题目,帮助粉丝顺利解决了问题。
【提问补充】温馨提示,大家在群里提问的时候。可以注意下面几点:如果涉及到大文件数据,可以数据脱敏后,发点demo数据来(小文件的意思),然后贴点代码(可以复制的那种),记得发报错截图(截全)。代码不多的话,直接发代码文字即可,代码超过50行这样的话,发个.py文件就行。
[图片上传失败…(image-1a7ef4-1684477105625)]