Localizar valores únicos en una matriz. Usar Funciones
Ejemplo
Enunciado
Crear una matriz cuadrada de NXN de valores enteros, encontrar los valores únicos de una matriz y visualizarlos ordenados.
N será un dato que se le preguntará al usuario. Los datos de la matriz serán un número elegido al azar entre 1 y 31.
El programa tendrá tres funciones:
Una para validar los datos de entrada.
Visualizar los datos de la matriz.
Visualizar la lista de los números enteros separados por coma
Análisis:
Preguntar al usuario el tamaño de la matriz. Código para validar que sea un número entero y mayor que cero y menor que 20
Introducir los datos a la matriz.
Generar una lista con los valores lógicos de una matriz
Código completo
import random # importamos librería random para generar los datos aleatorios
def pedir_dato ():
# Validamos el tamaño de la matriz
bandera=True
while bandera:
try:
Numero = int(input('Introduzca tamaño de la matriz: '))
except:
print("Tecleaste letras")
else:
if Numero>1:
bandera=False
else:
print("Has tecleado 0 o un número negativo")
return Numero
def ver_lista(lista):
#Ordenamos la lista
lista.sort()
#Convertimos los números a lista
resultado = list(map(str, lista))
#Separamos cada número de la lista con 1
resultado2="-".join(resultado)
return resultado2
def imprimir_matriz(matriz):
#Imprimimos la matriz
resultado=""
for i in range (len(matriz)):
for j in range (len(matriz[i])):
resultado+=str(matriz[i][j])+"\t"
resultado+="\n"
return resultado
# Pedir al usuario el valor de N para crear la matriz cuadrada
bandera=True
N=pedir_dato ()
matriz=[]
# Crear la matriz con números aleatorios enteros entre 1 y 31
for i in range(N):
matriz.append([])
for j in range (N):
matriz[i].append(random.randint(1,31))
# Localizar los valores unicos
print(imprimir_matriz(matriz))
valores_unicos=[] # creamos una lista vacia para guardar los valores únicos encontradas en nuestra matrix
for i in matriz:
for j in i:
if j not in valores_unicos:
valores_unicos.append(j)
print("Los valores únicos son:{} ".format(ver_lista(valores_unicos)))