For loop through the list unless empty?

for-loop, nonetype, python

Solution

Use a list comprehension:

def do_something(x):
  return x**2

list = []
result = [do_something(x) for x in list if list]
print result        # []

list = [1, 2, 3]
result = [do_something(x) for x in list if list]
print result       # [1, 4, 9]

Problem

I've been writing a lot of constructs like this the past couple of days: ``` list = get_list() if list: for i in list: pass # do something with the list else: pass # do something if the list was empty ``` Lot of junk and I assign the list to a real variable (keeping it in memory longer than needed). Python has simplified a lot of my code up til now... Is there a easy way to do this? (My understanding is that the `else` in the `for: else:` construct always triggers after it has looped, empty or not - so not what I want)

Original source