es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo agregar dos elementos en una lista de esta manera?

Entonces, estoy tratando de encontrar cómo puedo añadir dos elementos a mi nueva lista r bajo la función histograma. He aprendido que usando extend, puedo usar comas para añadir más de un elemento cada vez. Sin embargo, cuando intento hacer esto, obtengo un mensaje de error que dice:

TypeError: list.extend() toma exactamente un argumento (se dieron 2)

¿Qué estoy haciendo mal aquí? ¿Estoy entendiendo mal la sintaxis de la función list.extend?

Aquí está mi código por cierto..

def reverso(filename):
    s = open(filename, 'r')
    contenido = s.read()
    return list(contenido)
print(reverso('data'))

def histograma(filename):
    g: list = reverso(filename)
    r = []
    for x in g:
        r.extend(x, g.count(x))
    return r

print(histograma('data'))
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que estás intentando pasar dos argumentos a la función extend, lo cual está causando el mensaje de error. La función extend acepta sólo un argumento, el cual debe ser un iterable (por ejemplo, una lista, tupla o cadena de texto) que se pueda agregar al final de la lista original.

    Para agregar dos elementos a una lista, puedes utilizar la función append dos veces o añadirlos como una tupla utilizando la función append. Aquí te muestro las dos formas en las que puedes modificar tu función histograma para lograr esto:

    Usando append:

    def histograma(nombre_archivo):
        g: list = reverse(nombre_archivo)
        r = []
        for x in g:
            r.append(x)
            r.append(g.count(x))
        return r
    
    print(histograma('datos'))
    

    Usando append con una tupla:

    def histograma(nombre_archivo):
        g: list = reverse(nombre_archivo)
        r = []
        for x in g:
            r.append((x, g.count(x)))
        return r
    
    print(histograma('datos'))
    

    Ambas de estas modificaciones deberían darte el resultado deseado. ¡Déjame saber si tienes alguna pregunta adicional!

Comments are closed.