我需要计算伦敦自治市镇名称的平均值,中位数和模式。我已经创建了一个字典列表,并尝试导入统计功能以解决它。
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]
是因为您第二次拼写错误,所以它称其为错误