2011-01-03 13 views

Respuesta

52

Se puede utilizar una lista por comprensión filtrarlo:

j2 = [i for i in j if i >= 5] 

Si usted quiere realmente lo resuelto al igual que su ejemplo fue, puede utilizar sorted:

j2 = sorted(i for i in j if i >= 5) 

o llame sort en la final list:

j2 = [i for i in j if i >= 5] 
j2.sort() 
+0

No sabía acerca de la sintaxis where, ¡agradable! – ismail

+3

@ İsmail 'cartman' Dönmez: Eso es probablemente porque es un SyntaxError :) –

+0

@Ismail En realidad es 'si', acabo de perder la cabeza cuando estaba escribiendo esa respuesta :). Me alegro de que hayas dejado ese comentario o probablemente no me hubiera dado cuenta de –

7

Puede usar una lista de comprensión:

[x for x in j if x >= 5] 
7

Una lista por comprensión es un enfoque simple:

j2 = [x for x in j if x >= 5] 

Alternativamente, se puede utilizar filter para exactamente el mismo resultado:

j2 = filter(lambda x: x >= 5, j) 

Tenga en cuenta que la lista original j es sin modificar.

1

Desde su salida deseada se ordena, también es necesario para solucionar el problema:

>>> j=[4, 5, 6, 7, 1, 3, 7, 5] 
>>> sorted(x for x in j if x >= 5) 
[5, 5, 6, 7, 7] 
Cuestiones relacionadas