title: What's going on behind the scenes in "".join(e[0] for e in phrase.split())?
body: <p>I am a beginner trying to learn Python when my limited experience is in Java, so bear with me here.</p>
  
  <p>I can pick apart what the purpose of each part of the code is. I understand that we are joining essentially the first character of each word in a phrase into a string, effectually making an acronym as a result. I understand that we need to parse the phrase into a list of words, and that for each word we can pop off the first character, and that we need a loop to do that. Okay, makes sense.</p>
  
  <p>But what the heck? We're passing a for loop into a join function? And how does the e[0] play in here, when it's syntactically not a part of the the for loop, that I can see? </p>
  
  <p>I think maybe the syntax is throwing me for a loop (pardon the pun).</p>