Python Equivalent Of Ruby's .select
I have an list/array, lets call it x, and I want to create a new list/array, lets call this one z, out of elements from x that match a certain condition. In Ruby you could do that
Solution 1:
Python has a built-in filter
function:
lst = [1, 2, 3, 4, 5, 6]
filtered = filter(lambda x: x < 5, lst)
But list comprehensions might flow better, especially when combining with map operations:
mapped_and_filtered = [x*2 for x in lst if x < 5]
# compare to:mapped_and_filtered = map(lambda y: y*2, filter(lambda x: x < 5, lst))
Solution 2:
Solution 3:
Using a list comprehension is considered "Pythonic":
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
z = [i for i in x if i < 5]
print z
Output
[1, 2, 3, 4]
Post a Comment for "Python Equivalent Of Ruby's .select"