Сохраняйте растущие значения в списке и держите размер списка

Несколько дней назад я пробовал много способов и способов получить желаемое поведение списка в 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]
...............

Update:

Я обновил образец кода, на этот раз добавлен цикл 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]
---------------

Я действительно не знаю, как решить проблему такого типа, я ценю любую помощь ...

4 голоса | спросил Pavel.D 28 32018vEurope/Moscow11bEurope/MoscowWed, 28 Nov 2018 10:49:29 +0300 2018, 10:49:29

1 ответ


0
Вы должны поместить функцию ---- +: = 0 =: + ---- во внешний цикл, иначе вы вставите не только для каждого элемента в ---- +: = 1 =: + ---- ,но и для каждого шага расчета в ---- +: = 2 =: + ----т.е.или лучше Python:Но почему вы хотите написать ---- +: = 5 =: + ---- в B [0], если вы все равно перезапишете его на следующем шаге с помощью ---- +: = 6 =: + -- ?Это не имеет смысла.РЕДАКТИРОВАТЬ:Последнее соглашение о том, каким должно быть ожидаемое поведение:... или с помощью numpy проще изменить все значения массива сразу:
ответил SpghttCd 28 32018vEurope/Moscow11bEurope/MoscowWed, 28 Nov 2018 10:52:52 +0300 2018, 10:52:52

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132