Python简介:如何找到单个字典值的平均值(“model_year”)

iibxawm4  于 2024-01-05  发布在  Python
关注(0)|答案(1)|浏览(215)
  1. import csv #Informs Python that we want to use the csv module.
  2. vehicleInventory = {}
  3. with open('cars.csv', newline='') as csvfile:
  4. filereader = csv.DictReader(csvfile, delimiter = ',', quotechar = '"')
  5. counter = 0
  6. for row in filereader:
  7. counter += 1
  8. # TASK 1, copying rows in filereader into a dictionary
  9. vehicleInventory[counter] = row
  10. vehicleInventory[100] = {"model_year": str(2001), "type":"Car", "make":"MINI", "model":"S", "transmission":"6-speed", "primary_color":"Red" }
  11. vehicleInventory[101] = {"model_year": str(2020), "type":"Motorcycle", "make":"Yamaha", "model":"R6", "transmission":"6-speed", "primary_color":"black"}
  12. vehicleInventory[102] = {"model_year": str(2020), "type":"SUV", "make":"Chevrolet", "model":"Suburban", "transmission":"Automatic", "primary_color":"Grey"}
  13. #for key in vehicleInventory:
  14. #print("Vehicle " + str(key) + " information:")
  15. #print("MAKE " + vehicleInventory[key]["make"])
  16. #print("Year: " + vehicleInventory[key]["model_year"])
  17. #print("MODEL " + vehicleInventory[key]["model"])
  18. #print( "Color " + vehicleInventory[key]["primary_color"])

字符串
这是用于查找值的大部分代码,我需要找到模型年份的平均值:

  1. from functools import reduce
  2. def accumulate(x, y):
  3. return x + y
  4. def dict_mean(d):
  5. values_sum = reduce(accumulate, d.values())
  6. mean = values_sum / len(d)
  7. return mean
  8. for key in vehicleInventory:
  9. d = int(vehicleInventory[key]["model_year"])
  10. print (str("Mean:", dict_mean(d)))


我尝试了多种方法,这是最新的,但它总是卡住值总和不是一个int的原因,当它通常不应该关心。如果有一个更好的方法,请分享,因为我不知道如果这是远程工作。

esbemjvw

esbemjvw1#

vehicleInventory应该是一个字典列表(所以使用方括号)。你应该读取csv文件的每一行,并将其分配给相应的字典,然后将其附加到vehicleInventory列表中。

  1. vehicleInventory = []
  2. #File read, dictionary assignment for each row
  3. vehicleInventory.append({"model_year": str(2001), "type":"Car", "make":"MINI", "model":"S", "transmission":"6-speed", "primary_color":"Red" })
  4. vehicleInventory.append({"model_year": str(2020), "type":"Motorcycle", "make":"Yamaha", "model":"R6", "transmission":"6-speed", "primary_color":"black"})
  5. vehicleInventory.append({"model_year": str(2020), "type":"SUV", "make":"Chevrolet", "model":"Suburban", "transmission":"Automatic", "primary_color":"Grey"})
  6. counter = 0
  7. for element in vehicleInventory:
  8. counter += int(element["model_year"])
  9. mean = counter/len(vehicleInventory)
  10. print(mean)
  11. #Returns 2013.6666666666667

字符串

展开查看全部

相关问题