Python - Comparar linea/parrafo tiene más caracteres diferentes.

 
Vista:
sin imagen de perfil
Val: 15
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Comparar linea/parrafo tiene más caracteres diferentes.

Publicado por Ramon (5 intervenciones) el 23/04/2020 13:12:49
¿Como puedo hacer para comparar que linea o párrafo tiene más caracteres distintos? Es decir, si la primera linea tuviera: "aaaaaaaaaaaaaaa"; y la segunda:"abc". El programa debería de devolverme la segunda linea. He hecho este código pero no se como hacerlo para comparar, ni si voy por buen camino


1
2
3
4
5
6
7
8
9
10
11
12
13
def len_diferente(f):
    for linea in f:
        y=0
        if
        for letra in linea:
            pass
 
 
 
 
 
f=open("Apirilak2.txt")
print(len_diferente(f))
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: 1.846
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Comparar linea/parrafo tiene más caracteres diferentes.

Publicado por tincopasan (565 intervenciones) el 23/04/2020 16:27:50
hola:
no sabría decirte si vas por el buen camino, porque en esas líneas no alcanzo a entender cual es la lógica que querés implementar.
Lo único visible es que lees los datos desde un archivo.
Ahora bien, hay muchas formas de hacer esto, depende de la lógica que cada uno aplique. Aunque lo que hiciste no es para nada funcional, te voy a ayudar, por el intento mínimo aunque sea.Cuando lo desarrollé note que podía haber cadenas iguales así que implementé en base a esa posibilidad. Te muestro un código para que te oriente, es simple y le puede servir a otros con el mismo planteo.Lo que no te guste lo cambias y listo!

Contenido de Apirilak2.txt en este caso:
1
2
3
4
5
aaaaaaaaaaaaaaa
murciélago
abc
otra linea
y vamos por más

contenido de verifica.py:
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
29
30
31
32
33
34
35
36
#-*- coding: utf -8 -*-
def clave_ordenacion(tupla):
  return (tupla[1])
 
def comparar():
    final=[]
    with open("Apirilak2.txt") as archivo:
        linea_actual = archivo.read().split("\n")
    largos=[len(set(x)) for x in linea_actual]
    ordenada =[x for x in enumerate(largos)]
    largo_ordenado = sorted(ordenada, key=clave_ordenacion)
    for j in largo_ordenado:
      if j[1] == largo_ordenado[-1][1]:
            final.append(linea_actual[j[0]])
    return final
 
def len_diferentes(f):
    final=[]
    with open(f) as archivo:
        linea_actual = archivo.read().split("\n")
    largos=[len(set(x)) for x in linea_actual]
    ordenada =[x for x in enumerate(largos)]
    largo_ordenado = sorted(ordenada, key=clave_ordenacion)
    for j in largo_ordenado:
      if j[1] == largo_ordenado[-1][1]:
            final.append(linea_actual[j[0]])
 
    tamaño = len(final)
    if tamaño == 1:
        print("La linea con más diferencias es: ", final[0])
    else:
        print("Las cadenas son: ")
        for valor in range(tamaño):
            print(final[valor])
 
len_diferentes("Apirilak2.txt")
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 1.846
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Comparar linea/parrafo tiene más caracteres diferentes.

Publicado por tincopasan (565 intervenciones) el 23/04/2020 17:01:34
toda la función comparar está de más! es que me olvide de borrarla en otra implementación que hice.
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
Imágen de perfil de katas
Val: 1.435
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Comparar linea/parrafo tiene más caracteres diferentes.

Publicado por katas (44 intervenciones) el 29/04/2020 10:12:25
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