字典中的最大值

时间:2016-12-18 07:23:18

标签: python python-3.x dictionary

我的字典看起来像

<html>
<head>
    <title>Javascript</title>
    <script src="https://code.jquery.com/jquery-3.1.1.js" type="text/javascript"></script>
    <script src="http://cdn.jsdelivr.net/jquery.validation/1.15.0/jquery.validate.min.js" type="text/javascript"></script>



    <script>
        $(function(){
              jQuery.validator.addMethod("rangelength", function(value, element, param) {
                param[2]=value.length;
                return this.optional(element) || ((value.length > param[0]) && (value.length < param[1]));
                },'You are only allowed between {0} and {1}. You have typed {2} characters');
            $('#myform').validate({
                rules: {
                    field: {
                        required: true,
                        rangelength: [2, 6]
                    }
                }                      
            });
        });

    </script>
</head>
<body>
    <form id="myform">
        <input id="field" name="field" type="text"/>
        </br>
        <input type="submit" value="submit"/>
    </form>
</body>

我将为每个值添加我的字典的最小值。我写这段代码

dic = {
   "X": 15, 
   "Y": 20, 
   "Z": 2 
}

必填结果

minimum = min(list(dic.values()))
dic["X"] = dic["X"] + minimum 
dic["Y"] = dic["Y"] + minimum 
dic["Z"] = dic["Z"] + minimum 

我的代码有效,但我认为这不是很好的解决方案。有人比我更好的解决方案

2 个答案:

答案 0 :(得分:4)

dic = {
   "X": 15, 
   "Y": 20, 
   "Z": 2 
}
minimum = min(dic.values())
for key in dic:
    dic[key] += minimum
print(dic)

出:

{'X': 17, 'Z': 4, 'Y': 22}

如何使用min():

min(iterable, *[, key, default ])
min(arg1, arg2, *args[, key ])
  

如果提供了一个位置参数,则它应该是可迭代。该   返回iterable中的最小项。如果两个或多个位置   提供了参数,最小的位置参数是   返回。

dic[key] = value是一个就地更改,无需生成新的dict容器。

答案 1 :(得分:1)

或使用dict comprehension

minimum = min(dic.values())

dic2 = {x: val + minimum for x, val in dic.items()}

注意:对于min,您不需要list值;这只会创建一个不必要的列表。