【问题标题】:Print list item index, from index of another list打印列表项索引,从另一个列表的索引
【发布时间】:2016-05-21 14:30:48
【问题描述】:

这是我到目前为止的代码,带有适当的缩进,但我不知道如何在这里执行。我正在尝试打印具有最大和最小降雨量的月份,但到目前为止我只打印最大/最小降雨量的索引。例如。我正在尝试打印:'Highest rainfall: 45 mm in January''Lowest rainfall: 12 mm in March'。但到目前为止,我只是打印'Highest rainfall: 2 (index of max in rain)',而不是月份。

def main():  
    rains = []  
    months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']  
    for month in range(12):  
       rain = eval(input('Enter the amount of rain for ' + months[month] + ': '))  
       rains.append(rain)  
    total = sum(rains)  
    average = (total/len(rains))  
    print()  
    print('The Rain Amounts:')  
    print(rains)  
    print()  
    print('Total Rainfall:', (round(total,2)), 'mm.')  
    print('Average Rainfall:', (round(average,2)),'mm.')  
    print('Highest rainfall:', rains.index(max(rains)), 'mm in', months.index(rains.index(max(rains))))  
    print('Lowest rainfall:', rains.index(min(rains)), 'mm in', months.index(rains.index(min(rains))))  

main()  

【问题讨论】:

  • 所有代码必须缩进 4 个空格(超出行通常的缩进)才能被视为“代码块”。
  • 最好使用int(input()) 而不是eval(input())

标签: python list max pycharm min


【解决方案1】:
max_rain = max(rains)
max_rain_months = [months[i] for i,amt in enumerate(rains) if amt == max_rain]
print("Highest rainfall:", max_rain, "mm in", ', '.join(max_rain_months))

min 类似。

【讨论】:

    【解决方案2】:

    像这样:

    import operator   
    
    months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
    rains = [12, 11, 10, 9, 8, 7, 6, 5, 4, 4, 2, 1]  
    
    index, value = max(enumerate(rains), key=lambda p: p[1])
    print "Month with max rain: " + months[index]
    index, value = min(enumerate(rains), key=lambda p: p[1])
    print "Month with min rain: " + months[index]
    

    输出:

    Month with max rain: January
    Month with min rain: December
    

    Live demo.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多