簡體   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