Вы можете сделать сумму соответствующего среза, подобно тому, что вы делаете, обратите внимание на индекс 13, а затем сделать сумму для частей списка перед ним и после следующего элемента до 13.
вы также можете использовать встроенный в sum
функции на результирующем списке объединения обеих частей:
def sum13(nums):
wheres13 = nums.index(13)
return sum(nums[0:wheres13]+nums[wheres13+2:])
Примечание это решение, как ваша, работает только в случае, когда у вас есть только 13 для исключения из списка.
Кроме того, они будут терпеть неудачу, если список не содержит 13.
Объяснения, для примера списка, как: [1,2,3,4,5,13,4,10]
:
- Посмотрите на 13:
wheres13 = nums.index(13)
- Получить часть списка перед индексом 13:
nums[0:wheres13]
. Это создает список, например [1,2,3,4,5]
, т. Е. От индекса 0 до индекса wheres13
(не включая его).
- Получите часть списка после 13:
nums[wheres13+2:]
. Это создает список, например [10]
, то есть из индекса номера после номера после 13 (который имеет индекс wheres13
плюс 2), до конца списка.
- Соедините оба списка:
nums[0:wheres13]+nums[wheres13+2:]
. Это создает список как встроено sum
функции [1,2,3,4,5,10]
- Используйте питона в списке из предыдущего пункта
Для полноты Heres версии изменен, чтобы удалить каждый 13 и следующий номер:
def sum13(nums):
n=nums
while 13 in n:
wheres13 = n.index(13)
n = n[0:wheres13]+n[wheres13+2:]
return sum(n)
Вы спрашиваете, что именно? – GLHF