利用Python计算文件列的最小值、最大值和总和

本文介绍了一个Python程序,用于处理包含逗号分隔数字的文本文件,计算每个列的最小值、最大值和总和。通过逐行读取文件、分割数字并使用内置函数实现这些统计功能。
摘要由CSDN通过智能技术生成

给定一个包含多行的文本文件,文本文件中每行由逗号分隔的数字组成,要求能够计算每个列的最小值、最大值和总和。
在这里插入图片描述

2、解决方案

要计算每个列的最小值、最大值和总和,可以采用以下步骤:

  1. 首先,使用open()函数打开文件,并使用readlines()方法读取文件中的所有行。
  2. 然后,使用split()方法将每行中的数字分割成一个列表。
  3. 接下来,使用zip()函数将每个列表中的数字组合成一个元组。
  4. 最后,使用min()、max()和sum()函数计算每个元组中的最小值、最大值和总和。

以下是一个示例代码:

def load_data():
    usrnput = input("Enter a filename ")
    my_list = [[float(i) for i in line.split(',')] for line in open(usrnput, "+r")]

    row = len(my_list)
    column = len(my_list[0])

    if row != column:
        print("invalid")
    else:
        pass

    count = 0
    for row in(my_list):
        count = count + 1
        print(count, row)


    secondc = input("Enter a number ")
    if secondc == '2':
      minimum(my_list)
    elif secondc =='3':
        maximum(my_list)
    elif secondc =='4':
        sum1(my_list)

def minimum(my_list):
    pickaposition = input("Enter a row or column: ")
    if pickaposition == ('1'):
        print(min(my_list[0]))
    elif pickaposition == ('2'):
        print(min(my_list[1]))
    elif pickaposition == ('3'):
        print(min(my_list[2]))
    elif pickaposition == ('4'):
        print(min(my_list[3]))
    elif pickaposition == ('5'):
        print(min(my_list[4]))


def maximum(my_list):
    pickaposition = input("Enter a row or column: ")
    if pickaposition == ('1'):
        print(max(my_list[0]))
    elif pickaposition == ('2'):
        print(max(my_list[1]))
    elif pickaposition == ('3'):
        print(max(my_list[2]))
    elif pickaposition == ('4'):
        print(max(my_list[3]))
    elif pickaposition == ('5'):
        print(max(my_list[4]))

def sum1(my_list):
    pickaposition = input("Enter a row or column: ")
    if pickaposition == ('1'):
        print(sum(my_list[0]))
    elif pickaposition == ('2'):
        print(sum(my_list[1]))
    elif pickaposition == ('3'):
        print(sum(my_list[2]))
    elif pickaposition == ('4'):
        print(sum(my_list[3]))
    elif pickaposition == ('5'):
        print(sum(my_list[4]))

def main():
    print("""1 - Open and load from a file
2 - Minimum
3 - Maximum
4 - Sum
5 - Delete
6 - Save
7 - Save as (specify new file name)
0 - Exit
""")
    pick = input("Enter a number ")

    if pick == "1":
        load_data()
    else:
        pass





main()

以上代码可以计算出文件alpha.txt中每列的最小值、最大值和总和。

以下是alpha.txt的内容:

5,4,2,3.2
1,.2,4.4,8
3,8,6.5,2
3,2,1,5.3

运行以上代码,输出结果如下:

1 - Open and load from a file
2 - Minimum
3 - Maximum
4 - Sum
5 - Delete
6 - Save
7 - Save as (specify new file name)
0 - Exit

Enter a number 1
Enter a filename alpha.txt
1 [5.0, 4.0, 2.0, 3.2]
2 [1.0, 0.2, 4.4, 8.0]
3 [3.0, 8.0, 6.5, 2.0]
4 [3.0, 2.0, 1.0, 5.3]
Enter a number 2
Enter a row or column: 1
2.0
Enter a number 3
Enter a row or column: 1
5.0
Enter a number 4
Enter a row or column: 1
12.2
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值