2016-07-26 30 views
0
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()的问题。在文本文档中,我从max()返回的最高数字中提取信息应该是100,但是它会返回99.我可以索引100,因此我确定列表中包含100。任何帮助将非常感激!max()返回99当100应该是我的列表中最高的

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

7,29,99,76 
7,30,98,76 
7,31,96,73 
8,1,93,71 
8,2,96,68 
8,3,98,71 
8,4,99,69 
8,5,100,71 
8,6,90,72 
… 
+1

我试图解决这个缺口,但你可能要仔细检查那。 –

回答

7

你们不是整数的字符串表示转换为整数。所以按字典顺序'99' > '100'。正如在这里看到:

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

但是将它们转换为整数:

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

在你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] 
+0

呵呵,非常感谢你!这很有道理! – Javajojoe

+0

@Javajojoe如果此答案解决了您的问题,请选中复选框 –

相关问题