字典中某些键的平均值

时间:2021-06-23 17:21:58

标签: python loops dictionary input key

我有一个程序可以让用户输入鱼雷的产量和速度:

#asking user for number of torpedos
count = int(input("Enter in number of functional torpedos: "))
#creating empty dictionary
torpedos = {}
#iterating through dictionary
for i in range(0,count):
  #user choses names of torpedos
  name = input("Enter in torpedo name: ")
  torpedos[name] = {}
  #user input values
  torpedos[name]["Yield"] = int(input("Enter in yield: "))
  torpedos[name]["Speed"] = int(input("Enter in speed: "))
  torpedos[name]["Side"] = input("Enter in side of ship: ")
print(torpedos)

我想知道如何计算鱼雷的平均产量和速度? 我对使用词典还很陌生,任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

要计算平均产量和速度,您可以使用 statistics 模块:

from statistics import mean

# asking user for number of torpedos
count = int(input("Enter in number of functional torpedos: "))
# creating empty dictionary
torpedos = {}
# iterating through dictionary
for i in range(0, count):
    # user choses names of torpedos
    name = input("Enter in torpedo name: ")
    torpedos[name] = {}
    # user input values
    torpedos[name]["Yield"] = int(input("Enter in yield: "))
    torpedos[name]["Speed"] = int(input("Enter in speed: "))
    torpedos[name]["Side"] = input("Enter in side of ship: ")

# compute average yield, speed:
average_yield = mean(v["Yield"] for v in torpedos.values())
average_speed = mean(v["Speed"] for v in torpedos.values())

print(torpedos)
print("Average yield:", average_yield)
print("Average speed:", average_speed)

打印(例如):

Enter in number of functional torpedos: 2
Enter in torpedo name: A
Enter in yield: 10
Enter in speed: 20
Enter in side of ship: L
Enter in torpedo name: B
Enter in yield: 15
Enter in speed: 25
Enter in side of ship: R
{'A': {'Yield': 10, 'Speed': 20, 'Side': 'L'}, 'B': {'Yield': 15, 'Speed': 25, 'Side': 'R'}}
Average yield: 12.5
Average speed: 22.5

答案 1 :(得分:0)

你可以使用列表理解:

yield_average = sum(v["Yield"] for v in torpedos.values()) / len(torpedos)
speed_average = sum(v["Speed"] for v in torpedos.values()) / len(torpedos)