Python 如何在三个值中找到最小值

Python 如何在三个值中找到最小值,python,python-3.x,Python,Python 3.x,我有一个记事本文件,有三行,这些是记事本的值,每行也有三个值: M,2.0,0.6 F,10,0 W,1.0,1.0 首先,我们需要一个基于逗号分割的for循环,然后我们需要提示用户输入一个数字,例如,在每一行中,数字应该乘以i[2],然后加上i[1],在这种情况下,我已经编写了代码,但我无法打印其中的最小数字,例如输入7,每行值分别为6.2、10.0和8.0,因此我们应该根据记事本的第一行得到最小值6.2,但我将得到记事本值最后一行的8.0 x = open ("sample.txt") d

我有一个记事本文件,有三行,这些是记事本的值,每行也有三个值:

M,2.0,0.6
F,10,0
W,1.0,1.0
首先,我们需要一个基于逗号分割的for循环,然后我们需要提示用户输入一个数字,例如,在每一行中,数字应该乘以i[2],然后加上i[1],在这种情况下,我已经编写了代码,但我无法打印其中的最小数字,例如输入7,每行值分别为6.2、10.0和8.0,因此我们应该根据记事本的第一行得到最小值6.2,但我将得到记事本值最后一行的8.0

x = open ("sample.txt")
dis = input("Enter distance in Kilometer: ")
def sumof(x,y,z):
    return float(x[1]) + float (dis) * float(y[2]) 

mini = 0

for i in x:
    i = i.rstrip()
    i = i.split(",")
    i = sumof(i,i,i)

    mini = i

    if i < mini:

        mini = i

print (mini)
x=open(“sample.txt”)
dis=输入(“以公里为单位输入距离:”)
def sumof(x,y,z):
返回浮点数(x[1])+浮点数(dis)*浮点数(y[2])
mini=0
对于x中的i:
i=i.rstrip()
i=i.split(“,”)
i=sumof(i,i,i)
mini=i
如果我<迷你:
mini=i
打印(迷你版)

请注意:Python已经有了
min()
来获取列表中的最低值
我的建议:

x = open ("sample.txt")
dis = input("Enter distance in Kilometer: ")

def sumOf(x, y):
    return float(x) + float (dis) * float(y) 

a = {}
for i in range(0, 3):
    i = x.readline()
    i = i.strip()
    i = i.split(",")
    a[i[0]] = sumOf(i[1], i[2])

print(min(a) + ": " + str(a[min(a)]))

对我来说,这终于奏效了。

这里:
mini=i;如果i
i条件永远不会发生,因为您在
if
语句之前设置了
mini=i
,所以
i
将完全等于
mini
。但是将此条件更改为
为什么您要将此条件更改为
。因此,在这种情况下,当我们输入7作为输入时,它有3个基于3行记事本的值,那么我们如何比较这三个值并获得其中的最小值?谢谢,但id不起作用,因为sum有三个参数,它显示了一个错误是的,非常感谢,它也为我工作,现在我们如何在min旁边打印i[0]?正如您所知,i[0]是记事本中每一行的标签。我们可以使用字典。您能告诉我如何使用吗?对于最新的更改,它不起作用,并且表示的错误必须是str not float