Несколько дней назад я пробовал много способов и способов получить желаемое поведение списка в Python.Мне нужно создать метод, который назначает и изменяет значения в списке, в то же время он сохраняет размер списка.позвольте мне объяснить
У меня есть такой код.
A = [1,1,1,1,1]
B=[]
for i in range(0,len(A)):
for j in range(1,3):
val = j*2*A[i]
B.insert(i,val)
print(B)
Результат, который я получаю:
[4, 2]
[4, 4, 2, 2]
[4, 4, 4, 2, 2, 2]
[4, 4, 4, 4, 2, 2, 2, 2]
[4, 4, 4, 4, 4, 2, 2, 2, 2, 2]
Что я хочу сделать!
в этом случае взять первое значение A-списка int 1
.затем сделайте некоторые вычисления, увеличив функцию дальности.val = 1*2*A[0] = 2
и установите в B-списке, и продолжайте val = 2*2*A[0] = 4
и установите в B-списке.затем следующие val = 1*2*A[1] = 2
и val = 2*2*A[1] = 4
.Я ожидаю, что у меня будет такой вывод.
[2]
[4]
[2,2]
[4,4]
...............
Обновление:
Я обновил образец кода, на этот раз для цикла добавлен цикл forпостроение list A
, но это сталкивается с некоторой проблемой. Я не совсем понимаю, почему он работает с ошибка list index out of range.
Понятно, когда len(list A)
равен 4
, len(list B)
становится 5
.не ожидается list B
выйдет за пределы диапазона?
A = []
B = []
for n in range(1,11):
A.append(n/n)
for i in range(0,len(A)):
B.insert(i, A[i])
for j in range(1,3):
for k, _ in enumerate(B):
B[k] = j*2*A[k]
print(B)
Вывод получаю:
[2.0]
[4.0]
[2.0, 4.0] #<------- Not need it
[2.0, 2.0]
[4.0, 2.0] #<------- Not need it
[4.0, 4.0]
[2.0, 1.0, 4.0] #<------- Not need it
[2.0, 2.0, 4.0] #<------- Not need it
IndexError: list index out of range
Ожидаемый вывод.
[2.0]
[4.0]
[2.0, 2.0]
[4.0, 4.0]
---------------
Не совсемзнаю, как решить эту проблему, я ценю любую помощь ...