title: Nicer way to define `args` in the Thread constructor?
body: <p>When you create a thread you pass arguments as an iterable, typically a tuple like this:</p>
  <pre><code>import threading
  import time
  
  def countdown(secs):
      for second in range(secs, 0, -1):
          print(f&quot;{second}!&quot;, end = &quot; &quot;)
          time.sleep(1)
      print(&quot;Happy New Year!&quot;)
  
  countdown_thread = threading.Thread(target=countdown, args=(5,))
  countdown_thread.start()
  countdown_thread.join()
  </code></pre>
  <p>I think the <code>(5,)</code> is syntactically gross and makes it harder to explain what's going on.  This line works just as well:</p>
  <pre><code>countdown_thread = threading.Thread(target=countdown, args=[5])
  
  </code></pre>
  <p>Is there any solid reason not to simply pass a list rather than a tuple to <code>Thread</code>? I don't want to lead people astray.</p>
  <p>If there is no solid reason not to use a list, I'll just go with my opinion when I teach others.</p>