Python - Reemplazar elemento de una lista

 
Vista:
Imágen de perfil de Enrique
Val: 35
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

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?

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Reemplazar elemento de una lista

Publicado por tincopasan (1082 intervenciones) el 29/01/2021 23:40:17
la verdad no sé si entendí bien, pero creo es algo así lo que planteas:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#-*- coding: utf -8 -*-
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)
indice = poblacion.index(elemento) #obtener el indice de la sublista
 
posicion = random.randint(0,len(elemento)-1)
 
 
print(f"Elemento: {elemento}")
print(f"Posicion a cambiar: {posicion}")
 
if poblacion[indice][posicion] == 1:
    poblacion[indice][posicion] = 0
else:
    poblacion[indice][posicion]=1
 
print(poblacion[indice]) #simplemente para ver el cambio
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar