Reemplazar elemento de una lista
Publicado por Enrique (13 intervenciones) el 29/01/2021 21:05:38
Tengo un problemita con mi lista a ver si me pueden ayudar.
Tengo una lista de varios números binarios. Lo que quiero es seleccionar un numero aleatorio de esa lista y después, dado un numero aleatorio entero entre 0 y 22, cambiar el digito del numero de la lista seleccionado que se encuentra en la posición del numero aleatorio entre 0 y 22, y ya después de haberlo cambiado, reemplazar ese numero inicial con el nuevo numero binario
Un ejemplo tengo esta lista:
[[1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1],
[1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1],
[0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0],
[1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1]]
Y se seleccionó de manera aleatoria el segundo numero de la lista, y del numero entre 0 y 22 salió el numero 8. Entonces del numero aleatorio de la lista quiero cambiar el digito que se encuentra en la posición 8; si es un 0 cambiarlo por un 1 y viceversa.
Y después, ese numero ya con el digito cambiado, ponerlo en la lista en la misma posición donde estaba el numero original. Me podrán ayudar?
Tengo una lista de varios números binarios. Lo que quiero es seleccionar un numero aleatorio de esa lista y después, dado un numero aleatorio entero entre 0 y 22, cambiar el digito del numero de la lista seleccionado que se encuentra en la posición del numero aleatorio entre 0 y 22, y ya después de haberlo cambiado, reemplazar ese numero inicial con el nuevo numero binario
Un ejemplo tengo esta lista:
[[1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1],
[1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1],
[0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0],
[1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1]]
Y se seleccionó de manera aleatoria el segundo numero de la lista, y del numero entre 0 y 22 salió el numero 8. Entonces del numero aleatorio de la lista quiero cambiar el digito que se encuentra en la posición 8; si es un 0 cambiarlo por un 1 y viceversa.
Y después, ese numero ya con el digito cambiado, ponerlo en la lista en la misma posición donde estaba el numero original. Me podrán ayudar?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import random
poblacion = []
for x in range(0,4):
poblacion.append(random.choices([0,1], k=22))
print("Poblacion:")
print(poblacion)
print()
elemento = random.choice(poblacion)
posicion = random.randint(0,len(elemento)-1)
print(f"Elemento: {elemento}")
print(f"Posicion a cambiar: {posicion}")
Valora esta pregunta


0