繁体   English   中英

打印字典中最小列表中的最大值

[英]Print the highest value out of the minimums of list in dictionary

我当前的字典是:

{'NSW': [0.5, 0.5, 0.5, 1.4, 0.5, 0.5, 54.6, 61.0, 3.4, 38.8, 2.8, 1.2, 0.5, 2.6, 0.6, 0.5, 0.5, 1.8, 0.4, 4.4, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 1.6, 0.5, 0.5, 0.5, 0.5, 0.2, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 1.6, 10.4, 0.5, 0.4, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 6.0, 0.5, 3.0, 13.8, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.2, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 1.2, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.2, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 7.8, 16.4, 0.2, 3.4, 0.5, 0.5, 0.4, 34.2, 0.2, 0.2, 0.5, 0.5, 0.5, 0.5, 0.5, 1.6, 31.8, 4.4, 5.6, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.4, 0.2, 2.4, 2.8, 1.6, 7.8, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.8, 1.8], 'QLD': [0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 14.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 40.0, 0.2, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 4.4, 20.0, 0.6, 2.0, 3.4, 10.4, 9.8, 0.6, 0.6, 0.6, 0.6, 3.4, 7.2, 0.4, 0.6, 4.6, 0.6, 0.6, 8.4, 18.4, 5.0, 6.1, 2.3, 16.8, 3.0, 0.4, 24.0, 10.8, 11.2, 9.8, 0.6, 23.8, 0.6, 0.2, 1.6, 0.4, 0.6, 0.6, 0.4, 43.6, 6.8, 0.6, 20.8, 5.8, 10.6, 11.2, 5.4, 1.2, 0.6, 10.4, 1.6, 0.6, 0.8, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.2, 0.6, 4.4, 10.8, 5.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.2, 5.2, 1.4, 0.6, 0.6, 0.6, 0.6, 0.4, 0.6, 0.6, 5.4, 5.8, 7.4, 9.8, 5.2, 10.4, 3.4, 0.6, 1.0, 9.2, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 1.4, 0.2, 0.6, 0.6, 2.2, 0.6, 0.6, 0.4, 0.6, 3.0, 7.6, 5.0, 0.6, 0.6, 0.6, 1.2, 0.6, 0.6, 0.6, 1.2, 2.0, 1.0, 0.8, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 1.2, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6], 'VIC': [0.4, 0.0, 0.0, 0.0, 0.0, 6.4, 0.0, 0.0, 1.8, 0.0, 0.2, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6, 0.2, 0.0, 1.4, 0.0, 1.4, 0.0, 0.0, 0.0, 4.4, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.8, 0.0, 0.4, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.2, 5.0, 0.6, 4.2, 0.0, 0.0, 7.0, 0.0, 2.4, 2.0, 2.8, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 6.6, 0.0, 0.0, 4.2, 2.2, 0.0, 0.0, 0.0, 2.8, 2.0, 0.0, 0.2, 0.8, 1.8, 2.8, 7.2, 2.0, 0.6, 1.6, 0.0, 9.2, 0.6, 0.0, 7.8, 0.6, 0.0, 0.6, 0.2, 0.0, 0.0, 0.0, 0.4, 0.2, 4.8, 0.8, 3.2, 1.2, 0.2, 0.0, 0.2, 2.0, 1.4, 0.0, 21.4, 0.2, 0.0, 0.2, 0.0, 0.0, 0.0, 0.0, 0.4, 1.6, 0.4, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.4, 0.2, 0.0, 2.4, 0.2, 0.0, 10.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.6, 0.0, 0.0, 0.0, 0.2, 11.4, 0.2, 0.0, 0.4, 0.0, 4.4, 6.0, 0.4, 1.4, 1.4, 0.4, 0.0, 0.0, 3.4, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.6, 4.2, 0.0, 24.8, 0.0, 0.0, 0.0, 0.0, 1.0, 0.4, 3.4, 1.4, 0.2, 0.0, 0.0]}

有3个键,NSW,QLD和VIC。 我想从每个列表中找到最小值,然后通过指定一个值来打印这些“最小值”中的最大值

这是一个更大问题的一部分:到目前为止,我所做的是,

rainfall_and_state = {}
is_first_line = True

for row in open("climate_data_2017.csv"):
  if is_first_line:
    is_first_line = False
  else:
    values = row.split(",")
    month = values[0].split("-")[1]
    rainfall = float(values[6])
    state = values[1]

    if state in rainfall_and_state:
      rainfall_and_state[state].append(rainfall)
    else:
      rainfall_and_state[state] = [rainfall]

我认为这部分是错误的

minimum = {}
for key in rainfall_and_state:
  rainfalls = rainfall_and_state[key]
  minimum_rainfall = min(rainfall_and_state)
  minimum[key] = minimum_rainfall

print(rainfall_and_state)

如果您希望我附上较大的问题,可以更好地解释,我可以这样做

每个列表的最小值

>>> l = [(k, min(v)) for k,v in d.items()] 

[('VIC', 0.0), ('QLD', 0.2), ('NSW', 0.2)]

其中最大:

>>> max(x[1] for x in l)

0.2

要获取密钥,值:

>>> max(l, key=lambda x: x[1])

('QLD', 0.2)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM