Python… Умножение элементов в списке

#python #python-3.8 #codio

#python #python-3.8 #codio

Вопрос:

Я не понимаю, почему это неправильно. Это расстраивает, и я теряю терпение… У меня есть крайний срок, чтобы закончить модуль и выполнить проект к воскресенью, но я работаю полный рабочий день, и у меня есть семья, о которой нужно заботиться. Я надрывал свою задницу в свободное время, чтобы выяснить, почему этот код не работает, и это сбивает меня с толку, потому что я не смог этого понять… Я запускаю его в режиме ожидания, и он работает просто отлично, но всякий раз, когда я запускаю его в codio, я получаю сообщение об ошибке «Сбой программы для ввода: 1,2,3,4,5,6 2 7 Ожидаемый результат: [1, 2, 3, 4, 5, 6] Выходные данные вашей программы: [1, 2, 6, 4,5, 70]

Ваш вывод был неверным. Попробуйте еще раз. «

 # Get our input from the command line
import sys
M= int(sys.argv[2])
N= int(sys.argv[3])

# convert strings to integers
numbers= sys.argv[1].split(',')
for i in range(0, len(numbers)):
  numbers[i]= int(numbers[i])

#I left these comments in so I can remember what values are being plugged in
#print(M) - 5
#print(N) - 3
#print(numbers)
#list2=[1,2,value1,4,5,value2]

for num in numbers:
  if(num == 3):
    #print(M*3)
    value1=(M*3)
    numbers.remove(3)
    numbers.append(value1)
  if(num == 6):
    value2=(N*10)
    numbers.remove(6)
    numbers.append(value2)
    #print(N*10)

mylist=(numbers)
order=[0,1,4,2,3,5]
mylist = [mylist[i] for i in order]
print(mylist)
  

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

1. Что именно должен делать код?

2. Извините, но ваши жизненные обстоятельства не помогают вам решить вопрос. Что вообще делает код?

3. Я даже не буду читать все это, но могу сказать вам, что одна из ваших проблем заключается в том, что вы перебираете список и при этом удаляете и добавляете к нему элементы. Вы не можете этого сделать.

4. Почему я не могу удалять и добавлять элементы из списка?

5. Итак, M, N передают входные данные в код, а список чисел — это список, который я редактирую.

Ответ №1:

 # Get our input from the command line
import sys
M= int(sys.argv[2])
N= int(sys.argv[3])

# convert strings to integers
numbers= sys.argv[1].split(',')
for i in range(0, len(numbers)):
  numbers[i]= int(numbers[i])

# Your code goes here
step = N - 1
while (step<len(numbers)):
  numbers[step] *= M
  step  = N
print(numbers)