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)))

Última actualización