title: filling empty nested lists - for loop vs list comprehension
body: <p>Trying to fill empty nested lists with a value, I found there is different behavior between using a for loop vs list comprehension, and I was wondering why this is, despite functionally they should do the same. See below:</p>
  <pre><code>nl= [[True], []]
  
  for item in nl:
      if len(item) ==0:
          item.append('false')
  #this is the desired result
  print(nl)
  [[True], ['false']]
  
  nl=[item.append('false') for item in nl if len(item)==0]
  print(nl)
  [None]
  #no idea why this happens
  print([item.append('false') for item in nl if len(item)==0]
  print(nl)
  [[True], ['false']]
  </code></pre>