从嵌套的python字典中总结某些数据

2024-04-25 13:18:26 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有以下代码

Filme = {'1': {'Titel': 'Titanic', 'Jahr': 1997, 'Wertung': 8, 'Preis': 30,
                               'Schauspielern': ["Adam Sandler", 'b', 'c']},
         '2': {'Titel': 'Pulp Fiction', 'Jahr': 1994, 'Wertung': 9, 'Preis': 40, 'Schauspielern': ['']},
         '3': {'Titel': 'Wings of Desire', 'Jahr': 1987, 'Wertung': 8, 'Preis': 40,
                               'Schauspielern': ['']},
         '4': {'Titel': 'London Has Fallen', 'Jahr': 2016, 'Wertung': 6, 'Preis': 20,
                               'Schauspielern': ['']},
         '5': {'Titel': 'Avatar', 'Jahr': 2009, 'Wertung': 8, 'Preis': 35, 'Schauspielern': ['']},
         '6': {'Titel': 'The Devil Wears Prada', 'Jahr': 2006, 'Wertung': 7, 'Preis': 20,
                               'Schauspielern': ['']},
         '7': {'Titel': 'Submarine', 'Jahr': 2010, 'Wertung': 7, 'Preis': 20, 'Schauspielern': ['']},
         '8': {'Titel': 'About Time', 'Jahr': 2013, 'Wertung': 8, 'Preis': 37, 'Schauspielern': ['']},
         '9': {'Titel': 'Love, Rosie', 'Jahr': 2014, 'Wertung': 7, 'Preis': 25, 'Schauspielern': ['']},
         '10': {'Titel': 'Me Before You', 'Jahr': 2016, 'Wertung': 9, 'Preis': 45,'Schauspielern': ['']}
         }

我要做的任务是通过选择不同的电影来计算总价格(使用的变量是“Preis”)。例如,如果我选择电影1、4和8,输出应该是87(30+20+37) 有什么我能做的吗?谢谢


Tags: of代码电影pulpadamfictionwingstitanic
3条回答

你也可以试试这个:

movies = [1,4,8]

def getTotalMoney(movies, Filme):
  return sum(Filme.get(str(i)).get("Preis") for i in movies)

print(getTotalMoney(movies, Filme))

结果是:

87

假设您在一个列表中有电影编号(例如,您可以通过input()获得它们),您可以迭代和累积它们

price = 0
for movie_number in movie_numbers:
    if movie_number not in Filme:
        continue  # ignore invalid movie numbers

    price += Filme[movie_number].get('Preis', 0)  # price is 0 when no Preis is present

return price
t= ['1','4','8']
print reduce(lambda x,y:x+y, map(lambda x: Filme[x]['Preis'], t), 0)

相关问题 更多 >