我需要计算伦敦自治市名称的平均值,中位数和模式。我创建了一个字典列表,并尝试导入统计函数来实现它。
n = [
{'name': 'Barking and Dagenham', 'length': 19.0},
{'name': 'Barnet', 'length': 6.0},
{'name': 'Bexley', 'length': 6.0},
]
我试过了:
mean_l = mean(n['lenght'])
print('The mean length of the name of a London Borough is', mean_l)
然而它继续给我以下错误:
TypeError:list indices必须是整数或切片,而不是str
感谢任何帮助。
答案 0 :(得分:1)
这样的事情应该有效。创建一个包含所有长度的列表,然后将适当的统计函数应用于该列表。
import numpy as np
import statistics
lengths = [x['length'] for x in n]
mean_length = np.mean(lengths)
median_length = np.median(lengths)
mode_length = statistics.mode(lengths)
答案 1 :(得分:0)
您没有按照预期的方式处理列表n
。当你写
n[x]
然后python将尝试查看列表中的位置x
。如果你现在做
n['length']
然后python不知道该怎么做,因为列表中没有位置'length'
。你可以做到
n[0]['length']
因为列表中的元素(用整数索引)是字典。我认为你可以通过创建一个只包含长度字段值的列表来解决这个问题,如下所示:
length_list = [d['length'] for d in n]