Как узнать среднюю цену предметов в словаре, если это голубика? - PullRequest
0 голосов
/ 23 октября 2019

Используйте словарь, цену, определенную в следующей ячейке, чтобы ответить на вопрос. В следующей ячейке используйте цикл for, чтобы вычислить и напечатать среднюю цену на голубику.

price = {
1: ['Blueberry', 'US', 1.31],
2: ['Pineapples', 'Brazil', 3.71],
3: ['Pear', 'Costa Rica' , 0.58],
4: ['Plum', 'US', 1.00],
5: ['Grapes', 'US', 1.25],
6: ['Papaya', 'Costa Rica', 0.4 ],
7: ['Blueberry', 'Mexico' , 1.58],
8: ['Plum', 'Mexico', 1.50],
9: ['Grapes', 'Italy', 2.25],
10: ['Blueberry', 'Italy', 2.50 ]
}

Мне нужно получить среднюю цену на голубику, но я не знаю, как получить цену отэто только если цена на чернику.

Ответы [ 2 ]

2 голосов
/ 23 октября 2019

Попробуйте приведенный ниже код. Надеюсь, это поможет:

price = {
1: ['Blueberry', 'US', 1.31],
2: ['Pineapples', 'Brazil', 3.71],
3: ['Pear', 'Costa Rica' , 0.58],
4: ['Plum', 'US', 1.00],
5: ['Grapes', 'US', 1.25],
6: ['Papaya', 'Costa Rica', 0.4 ],
7: ['Blueberry', 'Mexico' , 1.58],
8: ['Plum', 'Mexico', 1.50],
9: ['Grapes', 'Italy', 2.25],
10: ['Blueberry', 'Italy', 2.50 ]
}


average = [ value[2] for key, value in price.items() if value[0]=='Blueberry']

print(sum(average)/len(average))

Ouput будет:

1.7966666666666669
0 голосов
/ 23 октября 2019

Если это разовое, вы могли бы написать что-то вроде

blueberry_prices = [v[2] for v in price.values() if v[0] == "Blueberry"]
avg_blueberry_price = sum(blueberry_prices) / len(blueberry_prices)

При этом используется понимание списка для извлечения (из значений в словаре) только цен (индекс индекса 2)где имя (индекс списка 0) равно "blueberry"

Для чего-либо, делающего это чаще, вы можете написать обобщенную функцию, сравнивающую ввод, а не "blueberry"

...