Прошу помощи в решении задачи на питоне

Уже больше двух недель не могу разобраться с задачей,нужно использовать цикл for и тд. Прошу помощи и подробных объяснений,обучаюсь несколько месяцев. Для коров есть 10 стойл. В каждом стойле разные условия для животных, поэтому и молока они дают по-разному. В первом стойле производят 2 литра в день, во втором 4, в третьем - 6, потом 8, 10, 12, 14, 16, 18, 20. Но коровы стоят не во всех стойлах. Свободные и занятые обозначаются строкой из букв a и b, где a - свободное стойло, b - занятое.

Пользователь вводит строку из 10 символов a и b. Необходимо определить, сколько в итоге будет произведено молока за день.


Ответы (5 шт):

Автор решения: CrazyElf

Поскольку это тестовое задание, вы его должны решить сами. Но могу дать подсказку - эта задача решается в одну строчку при использовании range, zip, sum и спискового включения.

P.S. Ну раз все уже пишут код, придётся и мне код привести.

print(sum(v for k,v in zip(input(), range(2,22,2)) if k == 'b'))
→ Ссылка
Автор решения: Leonid

Простите, что нарушаю солидарность в вопросах ответа на учебные задания, но я сам вчера только начала изучать Python и мне это интересно. Прошу прокомментировать ответ, если что не так.

udoi = [2,4,6,8,10,12,14,16,18,20]

print('Введите строку без пробелов из букв a и b,латинскими, пожалуйста')
string = input()

moloko = 0

for i in range(10):
    if string[i] == 'b':
        moloko += udoi[i]

print(moloko)
→ Ссылка
Автор решения: Kers

В продолжение комментариев вариант кода:

s = "baaaaaaaab"
milk = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
summ = 0
for n, i in enumerate(s):
    if i == "b":
        summ += milk[n]

print(summ)
→ Ссылка
Автор решения: Andy Pavlov

Подкину немного тем для изучения Python:

udoi = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
string = ['a', 'a', 'b','a', 'b','a', 'b', 'a', 'b', 'a']

print(sum(u[1] for u in zip(string, udoi) if u[0] == 'b'))
→ Ссылка
Автор решения: Jack_oS
milk_yield = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
cow_stalls = ['a', 'a', 'b', 'a', 'b', 'b', 'a', 'b', 'a', 'b']

result = sum(m[1] for m in list(zip(cow_stalls, milk_yield)) if m[0]=='b')

В result - сумма молока от коров в занятых стойлах:

>>> result
64

список кортежей, каждый элемент которого - код стойла и удой:

>>> list(zip(cow_stalls, milk_yield))
[('a', 2), ('a', 4), ('b', 6), ('a', 8), ('b', 10), ('b', 12), ('a', 14), ('b', 16), ('a', 18), ('b', 20)]

цикл по этому списку:

m[1] for m in...

учитывая только занятые стойла:

if m[0]=='b'
→ Ссылка