Como posso substituir um determinado elemento em uma lista com um elemento de outra lista de acordo com uma condição

Adel Moustafa:

Eu sou novo para python e eu quero construir uma função que atualiza parte de uma lista de acordo com uma condição.

aqui está um exemplo do que eu quero:

List1=[1,2,3,4,10,5,9,3,4]
List2=[2,4,6,8]

Quero atualização List1para ser [2,4,6,8,10,5,9,6,8], e aqui está o meu código para fazer isso:

x = [1, 2, 3, 4, 10, 5, 9, 3, 4]
y = [2, 4, 6, 8]


def update_signal(gain):
    for i in range(0, len(y)):
        for j in range(0, len(x)):
            if x[j] == y[i] / gain:
                x[j] = y[i]
            elif x[j - 1] == y[i] / gain:
                break


update_signal(2)  # for this example only gain =2
print("x=", x)
print("y=", y)

a saída esperada é:

x=[2,4,6,8,10,5,9,6,8] 
y=[2,4,6,8]

o que realmente imprime é:

x= [8, 8, 6, 8, 10, 5, 9, 6, 8]
y= [2, 4, 6, 8]

assim, o que estou fazendo de errado para fazer esta função se comportam assim?

Alexander Lekontsev:

Talvez algo como isso?

def update_signal(gain):
    return [item * gain if item * gain in y else item for item in x]

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=294431&siteId=1
Recomendado
Clasificación