gpt4 book ai didi

python - 无法计算列 python 的最小值/最大值/总和

转载 作者:太空宇宙 更新时间:2023-11-04 08:12:37 27 4
gpt4 key购买 nike

我的代码可以计算提供的文件 alpha.txt 中每一行的最小值/最大值/总和,但它不能按列计算最小值/最大值/总和....任何关于如何做的想法都会有所帮助,谢谢!

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 也包含数据

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

我确实需要根据列分配变量 A-Z,但我也不知道该怎么做。

这是我的代码的完整示例运行,也许可以让您更轻松。

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 3
Enter a row or column: 3
8.0
>>>

最佳答案

您的问题归结为:给定一个表示网格/矩阵的列表列表,您很容易提取一行,但如何提取列?

这是你如何做一行:

>>> a = [[5, 4, 3, 3.2], [1, .2, 4.4, 8], [3, 8, 6.5, 2], [3, 2, 1, 5.3]]
>>> a[0]
[5, 4, 3, 3.2]

这是制作专栏的费力方法。请注意,第一个索引发生变化,但第二个索引没有。即,如果我们选择每一行的元素 2,我们将得到一列!

>>> column_two = [a[0][2], a[1][2], a[2][2], a[3][2]]
>>> column_two
[3, 4.4, 6.5, 1]

您可以通过列表理解使这更容易。

>>> [x[2] for x in a]
[3, 4.4, 6.5, 1]
>>>

这相当于做:

column_two = []
for row in a:
column_two.append(row[2])

在此之后,您可以重新使用现有函数并将提取的列而不是行传递给它们。

关于python - 无法计算列 python 的最小值/最大值/总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19689200/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com