Как заменить два элемента в списке, если оба одинаковы (Python) - PullRequest
0 голосов
/ 01 февраля 2020

Я хочу заменить элементы в списке, если они совпадают в одном и том же списке, пока в списке не будет только 1. Если у меня есть [1,0,1,0,1], список становится [0,0,1,0,0] или что-то в этом роде, только с 1 ... но он не заменяет элементы и печатает тот же список ...

 import random 

p = float(input("Introduzca probabilidad de transmisión: "))
q = 1 - p
usuarios = ['Usuario1','Usuario2', 'Usuario3', 'Usuario 4', 'Usuario5']
transmisiones = []

for i in usuarios:
    if random.random() < p:
        transmisiones.append(1)
    else:
        transmisiones.append(0)

    print(transmisiones)

    for elemento in transmisiones:
        if elemento == 1 and transmisiones[0:5] == 1:
            transmisiones[elemento] = 0


    print(transmisiones)




    output:

    Introduzca probabilidad de transmisión: 0.6
    [1, 1, 0, 0, 0]
    [1, 1, 0, 0, 0]

1 Ответ

2 голосов
/ 01 февраля 2020

вы должны написать так

idx= -1
for i in range(len(transmisiones)):
        if transmisiones[i] == 1:
            idx = i
        transmisiones[i] = 0

transmisiones[idx] = 1

idx всегда сохраняйте последний индекс, где значение равно 1

, если вы хотите, чтобы все индексы были сохранены, добавьте их в списке

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