所以我有以下代码
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) 无论如何我能做到吗?感谢
答案 0 :(得分:0)
t= ['1','4','8']
print reduce(lambda x,y:x+y, map(lambda x: Filme[x]['Preis'], t), 0)
答案 1 :(得分:0)
假设您在列表中有电影号码(例如,您可以使用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
答案 2 :(得分:0)
你也可以试试这个:
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