Как добавить значение из одного списка в другой, но предыдущий список имеет разное количество элементов - PullRequest
0 голосов
/ 28 января 2020

В основном есть 3 списка: list1, list2, list3

list1 и list2 имеют 20 элементов, в то время как list3 имеют 10 элементов

Я пытаюсь эффективно это сделать, но без ошибки

for x in range(0, len(list3)): 
    for i in range(0, len(list1)):
        if list1[i] > 20:
           list3[x] = list2[i]

проблема заключается в том, что старое значение в списке list3 сохраняется, но затем заменяется после появления нового значения больше 20.

EDIT:

list1 = [10,20,30,40,50,60,70,80,90,100]
list2 = [1,2,3,4,5,6,7,8,9,10]
list3 = zeros(5) # array3 = [0,0,0,0,0]

for x in range(0, len(list1)):
    if list1[x] >50: 
       list3[x] = list2[x]

Результат, который я хочу list3 = [6,7,8,9,10]

Результат, который приведенный выше код будет продуктом error the element value is not high enough for list3

Код должен отклонить любые значения ниже 50 в списке1. Получите элементы со значениями выше 50 в list1, а затем получите значения тех же элементов в list2. затем сохраните эти значения в list3

EDIT 2: изменил массив в список - я только что привык использовать массивы, которые я инстинктивно использую для обозначения обоих слов. мой плохой

1 Ответ

1 голос
/ 28 января 2020

Не нужно обнулять список для вашего окончательного массива. Вы можете установить его как пустой список и добавить каждый результат к array3. Изменить: Вы также используете списки, а не массивы.

array1 = [10,20,30,40,50,60,70,80,90,100]
array2 = [1,2,3,4,5,6,7,8,9,10]
array3 = [] 

array3 = [array2[idx] for idx, value in enumerate(array1) if value > 50]
#[6, 7, 8, 9, 10]

Каждый раз, когда вы подходите, к значению, указанному в индексе x в array2, добавляется array3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...