max()返回99,而100应该是我的lis中的最高值

2024-04-20 01:03:16 发布

您现在位置:Python中文网/ 问答频道 /正文

def get_highs():
    atlTemps = open("tempsAtlanta2015.txt")
    highs = []
    highs = split_data(atlTemps, highs, 2)
    atlTemps.close()
    return highs

def split_data(lst, lst2, num):
    for i in lst:
        data = i.split(",")
        lst2.append(data[num])
    return lst2

def main():
    highs = get_highs()
    print(max(highs))
main()

我把这些函数从主程序中取出进行故障排除,我似乎在使用max()时遇到了问题。我从文件中返回的最大值应该是99,而不是从文件中返回最大值。我可以索引出100,这样我就可以确定100包含在列表中。任何帮助都将不胜感激!在

这是文本文件的一部分,信息存储为[month, day, high, low]

^{pr2}$

Tags: txtdatagetreturnmaindefopennum
1条回答
网友
1楼 · 发布于 2024-04-20 01:03:16

您没有将整数的字符串表示形式转换为整数。所以从词汇上来说'99' > '100'。如图所示:

>>> max(('99', '100'))
'99'

但是,将它们转换为整数:

^{pr2}$

split_data()函数中,您可以:

def split_data(lst, lst2, num):
    for i in lst:
        data = i.split(",")
        lst2.append(data[num])
    return [int(element) for element in lst2]

相关问题 更多 >