我正在尝试编写一个函数,它打开一个包含姓名、城市和数字列表的文件,并按城市取数字的平均值。你知道吗
到目前为止,我有一些类似于:
numbers = 0
count = 0
n = 0
while n < len(file):
for item in file:
if item.split(' ')[-2] == city:
count += 1
numbers += float(item.split(' ')[-1])
n += 1
else:
n += 1
return numbers / count
其中[-2]是城市的位置,[-1]是数字的位置。假设文件已经打开。你知道吗
我的代码贯穿整个文件,只返回最后一行的内容。所以,如果文件的最后一行有来自伦敦的人,我试图平均伦敦,它只会给我一个数字;如果我试图平均其他城市,它不会返回任何结果。你知道吗
为什么它在不更新计数的情况下循环遍历整个文件,以及如何修复它?你知道吗
编辑:
编辑了代码,文件如下所示:
NAME1 COUNTRY CITY NUMBER
在每一行。你知道吗
首先项目.拆分('')产生这样的东西:
如果一行有多个空格。使用
item.split()
其次,file对象有迭代接口,所以可以在 文件行的方式:
第三,确保文件中存在“CITYNAME”
为了防止不必要的文件读取和拆分,最好将准备好的数据存储在内存中:
并在需要时进行过滤:
相关问题 更多 >
编程相关推荐