¿Qué significan los corchetes en un bucle for en python?

Estoy analizando objetos JSON y encontré esta línea de código de muestra que entiendo pero que apreciaría una explicación más detallada de:

for record in [x for x in records.split("\n") if x.strip() != '']: 

Sé que está dividiendo registros para obtener registros individuales por el nuevo carácter de línea, sin embargo, me preguntaba por qué parece tan complicado. es un caso que no podemos tener algo como esto:

 for record in records.split("\n") if x.strip() != '']: 

Entonces, ¿qué hacen los paréntesis []? y ¿por qué tenemos x dos veces en x for x in records.split....

Gracias

Los “paréntesis” en su ejemplo construyen una nueva lista a partir de una antigua, esto se llama comprensión de lista .

La idea básica con [f(x) for x in xs if condition] es:

 def list_comprehension(xs): result = [] for x in xs: if condition: result.append(f(x)) return result 

La f(x) puede ser cualquier expresión, que contenga x no.

Esa es una lista de comprensión, una forma clara de crear listas con ciertas condiciones sobre la marcha.

Puedes hacer una forma corta de esto:

 a = [] for record in records.split("\n"): if record.strip() != '': a.append(record) for record in a: # do something 

Los corchetes ([]) normalmente indican una lista en Python.