我有一些来自不同表的属性,我需要检查。总共大约有40个项目,比如
origin, age, amount, etc
我还没有找到收集数据的最佳方法,也许从不同的来源拉取数据并创建一个字典
我为每个测试创建了一个函数。
def age(value):
if value < 3:
Score = 1
elif 3 <= value < 5:
Score = 7
elif value >= 5:
Score = 10
else:
Score = 10
Weight = 5
return (Score, Weight)
def origin(value):
if value.upper() == "USA":
Score = 1
elif value.upper() == "JAPAN":
Score = 1
elif value.upper() == "CHINA":
Score = 10
elif value.upper() == "OTHER":
Score = 7
else:
Score = 10
Weight = 1
return (Score, Weight)
我取值并附加到列表中
[[(7, 1)], [(1, 1)]]...
然后
## calling all 40 functions doesnt seem efficient
lst.append([age(4)])
lst.append([origin("JAPAN")])
score = item[0 for item in lst]
weight = item[0 for item in lst]
scoresum = (listsum(score))
weightsum = (listsum(weight))
total = scoresum/weightsum
有谁知道更好的方法来完成?
如果你坚持总结元组,你可以通过使用这个技巧简化该操作:
[sum(x) for x in zip(*lst)]
map(sum, zip(*l))
这将产生一个总和列表(例如[25, 32]),然后您可以使用它来计算总和。
但是,您需要有一个扁平的元组列表,这是您可能想要进行的更改。该列表应如下所示:
[(2, 1), (1, 1), ...]
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。