平均中位数和模式字典列表Python 3



我需要计算伦敦自治市镇名称的平均值,中位数和模式。我已经创建了一个字典列表,并尝试导入统计功能以解决它。

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:列表索引必须是整数或切片,而不是str

任何帮助都将不胜感激。

类似的东西应该起作用。创建一个包含所有长度的列表,然后将适当的统计功能应用于该列表。

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)

您没有以期望的方式处理列表n。当你写

n[x]

然后,Python将尝试查看列表中的x。如果您现在做

n['length']

然后Python不知道该怎么办,因为您的列表中没有位置'length'。你可以做

n[0]['length']

因为列表中的元素(用整数索引(是字典。我认为您可以通过创建仅包含长度字段的值的列表来解决此问题:

length_list = [d['length'] for d in n]

是因为您第二次拼写错误,所以它称其为错误

最新更新