У нас есть списокКак подсчитать конкретные элементы перед элементом в списке?
list = [1, 1, 1, 0, 1, 0, 0, 1]
Я пытаюсь найти функцию, которая бы подсчитать число 0 'перед каждым элементом, а затем умножить это число на 3.
def formula(n):
for x in list:
if x == 1:
form = n * 3
return form
#If x is 1, count the number of zeros right before x and multiply this by 3,
Например для списка выше , первый элемент равен 1, и перед ним нет цифр, программа должна вычислять 0 * 3 = 0, для второго элемента, который также равен 1, справа перед тем, как он также не равен нулю, программа должен также вычислить 0 * 3 = 0. Четвертый элемент равен 0, поэтому программа должна игнорировать. Для 5-го элемента, который равен 1, число прямо перед тем, как оно a 0, программа для вычисления 1 * 3 = 3, для 6-го элемента число справа до того, как оно равно 1, система должна вычислить 0 * 3 = 0. 7-й элемент равен 0, так как x не равно 1 программа не должна ничего делать. Для последнего элемента, который является 1, последние две цифры до того, как нули, то программа должна вычислить 2 * 3 = 6
Почему вы пропустили 7-й элемент? –
Ответ Уриэля Элда использует генератор, в то время как sparkandshine использует список, используйте тот, с которым вы чувствуете себя более комфортно, генераторы довольно pythonic, хотя – Adirio
Спасибо за исправление Moses –