La línea de código que está solicitando está utilizando list comprehension para crear una lista y asignar los datos recopilados en esta lista al self.cells
. Es equivalente a
self.cells = []
for i in xrange(region.cellsPerCol):
self.cells.append(Cell(self, i))
Explicación:
Para explicar mejor cómo funciona esto, algunos ejemplos simples podrían ser instructiva para ayudar a entender el código que tiene. Si vas a seguir trabajando con el código de Python, volverás a encontrar la comprensión de la lista y es posible que quieras usarla tú mismo.
Nota, en el ejemplo a continuación, los dos segmentos de código son equivalente en que crean una list
de valores almacenados en la lista de myList
.
Por ejemplo:
myList = []
for i in range(10):
myList.append(i)
es equivalente a
myList = [i for i in range(10)]
listas por comprensión puede ser más compleja también, así por ejemplo, si usted tenía alguna condición que determina si los valores deben ir en una lista que también podría expresar esto con la lista de comprensión.
Este ejemplo sólo recoge los valores de número par en la lista:
myList = []
for i in range(10):
if i%2 == 0: # could be written as "if not i%2" more tersely
myList.append(i)
y la lista equivalente de comprensión:
myList = [i for i in range(10) if i%2 == 0]
Dos notas finales:
- se puede tener "anidado "enumera las temores, pero rápidamente se vuelven difíciles de comprender :)
- La comprensión de la lista se ejecutará más rápido que el equivalente para-loop, y por lo tanto es a menudo un favorito de los programadores regulares de Python que están preocupados por la eficiencia.
Ok, un último ejemplo que muestra que también puede aplicar funciones a los elementos que está iterando en la lista.Esto utiliza float() para convertir una lista de cadenas de valores flotantes:
data = ['3', '7.4', '8.2']
new_data = [float(n) for n in data]
da:
new_data
[3.0, 7.4, 8.2]
se llama una 'lista de comprensión' –