我的字典看起来像
<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
我的代码有效,但我认为这不是很好的解决方案。有人比我更好的解决方案
答案 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)
minimum = min(dic.values())
dic2 = {x: val + minimum for x, val in dic.items()}
注意:对于min
,您不需要list
值;这只会创建一个不必要的列表。