【问题标题】:I have a dictionary with lists of values. I want to take the highest value from the list of values我有一本包含值列表的字典。我想从值列表中取最高值
【发布时间】:2021-06-02 13:09:56
【问题描述】:

假设我有一本字典

y = {'town1': ['moderate', 'low'], 'town2': ['high'], 'town3': ['moderate', 'severe']}

我希望字典只有一个值而不是列表,并采用最高风险值。因此,对于城镇 1,风险最高的是中等,对于城镇 2,风险很高,对于城镇 3,风险是严重的 风险顺序为('重度'、'高'、'中度'、低)

期望的输出: y = {'town1': ['moderate'], 'town2': ['high'], 'town3': ['severe']}

我的代码如下:

x = []
for k,v in y.items():
    x.append((k,v))

print(x)
for key, value in y.items():
    for i in range(len(x)):
        if 'severe' in x[i][1]:
            y[key] = 'severe'
        elif 'high' in x[i][1]:
            y[key] = ['high']
        elif 'moderate' in x[i][1]:
            y[key] = ['moderate']
        elif 'low' in x[i][1]:
            y[key] = ['low']

print(y)

【问题讨论】:

    标签: python list dictionary key key-value


    【解决方案1】:

    您不必显式地遍历严重性列表,in 运算符会为您执行此操作:

    x = {'town1': ['moderate', 'low'], 'town2': ['high'], 'town3': ['moderate', 'severe']}
    print(x)
    
    y = {}
    for key, values in x.items():
        if 'severe' in values:
            y[key] = ['severe']
        elif 'high' in values:
            y[key] = ['high']
        elif 'moderate' in values:
            y[key] = ['moderate']
        elif 'low' in values:
            y[key] = ['low']
    
    print(y)
    

    【讨论】:

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