Cada elemento de la lista es en sí mismo una lista única. No hay razón para esto: si no puede nombrar uno, vaya y elimínelos (usando re.find
sobre re.findall
o devolviendo un solo elemento de la lista devuelta por re.findall
), son simplemente redundantes y causan problemas como en este caso .
Independientemente, print item[0]
debería funcionar, ya que está imprimiendo el único elemento de la lista, ya diferencia de la str()
de las listas, no se ejecutará el artículo a través repr
primero (lo que hace que las cotizaciones y podría escapar caracteres no imprimibles si había alguna en la cadena). Y una vez que haya eliminado las listas de singleton redundantes, print '\n'.join(items)
también funcionará.
Su código arroja un error si hay una lista vacía en theList
. Si hay una línea en recentFile
que no contiene nada formateado como una IP, se devolverá una lista vacía por returnIP
, y si hay alguna línea en comparisonFile
(por cierto: la abre con un nombre descriptivo al principio, pero abierto una y otra vez sin un nombre descriptivo en chechMatch
) tampoco contiene una dirección IP, obtendrá otra lista vacía que, por supuesto, equivale a la lista vacía pasada como parámetro ip
. Por lo tanto, para nombres que no sean IP en recentFile
, se agregarán listas vacías. Se puede evitar todo este problema si devuelve cadenas en lugar de listas de singleton desde returnIP
, use None
cuando no haya IP en la línea actual, y omita la verificación/adición en compareFiles
si returnIP
devuelve None
.
¿De verdad? ¿Qué pasó cuando trataste 'print item [0]'? –
IndexError: lista de índice fuera de rango – Dan
¿Podría mostrarnos cómo es esta lista? –