Как умножить цифру в строке на ее положение в строке в python

#python

Вопрос:

Например, если бы у меня было 3456789, я бы хотел, чтобы сумма равнялась = (3×1) (4×2) (5×3) (6×4) (7×5) и т.д.

Ответ №1:

Вы можете использовать enumerate для получения индекса вместе с каждым символом и функцию sum для суммирования продуктов:

 sum(int(digit)*pos for pos,digit in enumerate("3456789",1)) # 196
 

Комментарии:

1. круто, я использовал python в течение многих лет и понятия не имел, что вы можете компенсировать индекс enumerate()

Ответ №2:

Вот несколько подсказок без прямого ответа на ваш вопрос, так как это похоже на домашнее задание:

Как перебирать символы в строке

 for i, c in enumerate(your_string):
    print("pos %d is char %s" % (i, c))
 

Как преобразовать строку, представляющую целое число, в целое число

 x_str = '1'
x_int = int(x_str)
 

Как вычислить сумму функции, вызываемой для элементов в массиве (или другой итерационной):

Этот код вычисляет сумму каждого значения в квадрате:

 elems = [ 10, 15, 20, 25 ]

value = 0
for index, elem in enumerate(elems):
    value = elem * elem
print("Sum of products of %s is: %d" % (elems, value))
 

В качестве альтернативы вы можете сделать это:

 value = sum(map(lambda x: x*x, elems))