我正在尝试对key:value对列表的值部分中的多个值执行计算。
所以我有类似的东西:
[('apples',['254','234','23','33']),('bananas',['732','28']),('squash',['3'' )]
我正在尝试创建一个y值列表,这些值是上述整数的平均值。
我想写的是以下伪代码
如果item [1]包含0个元素:
ys.append(项目[1])
否则如果item [1]包含> 0个元素:
加起来元素,除以元素数量
ys.append平均数
我不知道该怎么做才能访问每个键值集中可能存在的所有值。
答案 0 :(得分:2)
pairs
是您的配对列表:
averages = [float(sum(values)) / len(values) for key, values in pairs]
将为您提供平均值列表。
如果您的数字是字符串,请参阅上面的sum(values)
sum([int(i) for i in values])
。
编辑:如果你想要一本字典,那就是平均值列表:
averages = dict([(key, float(sum(values)) / len(values)) for key, values in pairs])
答案 1 :(得分:0)
ys = []
for k, v in items:
avg = sum(map(float, v))/len(v)
ys.append(v)
答案 2 :(得分:0)
您可以通过
找到列表的平均值sum(float(i) for i in lst) / len(lst)
如果列表的元素是整数,则可以
float(sum(lst)) / len(lst)
但在您的示例中,它们是字符串,因此您必须转换它们。
在这种情况下,我实际上建议使用Python的列表解析工具来自动创建平均值列表。如果您的原始配对列表被命名为,fruit_list
(我知道壁球不是水果,所以起诉我):
averages = [[] if len(values) == 0 else sum(float(i) for i in values)/len(values) for fruit, values in fruit_list]
虽然看起来有点奇怪,因为那时你会得到一个列表,其中一些元素是浮点数,其他元素是空列表。如果0
中没有值,您确定不想使用[]
代替item[1]
吗?