title: __str__ of lists (or tuples) shows __repr__ of Datetime so it is unreadable
body: <p>I am quite new to Python.
  I am working on an application which uses lists of Datetime objects (from the datetime module).</p>
  <p>I want to debug my app, so I print (or log) thoses lists, but it returns me this :</p>
  <pre><code>&gt;&gt;&gt; print(list_with_datetimes_and_timedeltas) # print calls __str__ (by default), but list's __str__ calls the item's __repr__
  [(None, 1, datetime.datetime(2020, 11, 1, 18, 44, 12, tzinfo=datetime.timezone(datetime.timedelta(seconds=3600), 'Paris, Madrid'))), (datetime.timedelta(seconds=110, microseconds=7), 1, datetime.datetime(2020, 11, 1, 18, 46, 2, tzinfo=datetime.timezone(datetime.timedelta(seconds=3600), 'Paris, Madrid'))), (datetime.timedelta(seconds=103, microseconds=5), 1, datetime.datetime(2020, 11, 1, 1) .....
  </code></pre>
  <p>Which is unreadable, and is due to the fact that the list.<strong>str</strong>() returns the <strong>repr</strong> of each items (from what I understood).</p>
  <p>There is no problem with <strong>str</strong> of Datetimes and Timedeltas :</p>
  <pre><code>&gt;&gt;&gt; print(my_list_with_datetimes_and_timedeltas[0][2])
  2020-11-01 18:44:12+01:00 #which is what I would like in the list for the datetimes
  &gt;&gt;&gt; print(my_list_with_datetimes_and_timedeltas[1][0])
  0:01:50.000007 #which is what I would like in the list for the timedeltas
  </code></pre>
  <p>I have thought about multiple solutions, but I really don't know how to choose and if they are even doable:</p>
  <ul>
  <li>change builtins List behavior so that it returns <code>__str__</code> representations of items instead of their <code>__repr__</code>, because I don't really see why it would return <code>__repr__</code> of objects if I call <code>__str__</code> on a list (but this really doesn't seem a good idea, and I don't even know if it's doable)</li>
  <li>change buildtins <code>__repr__</code> of Datetime objects in the module Datetime (also really doesn't seem to be a good idea)</li>
  <li><a href="https://stackoverflow.com/a/727780/15406744">as Dan said here</a>, I can <code>print([str(item) for item in mylist])</code>, but I would have to do this for every line of every log every time I print a List (and it will not even work here because it is a list of tuple)</li>
  <li>I also use a Logger (from logging). May it help if I change something there?</li>
  </ul>
  <p>Do you have any solutions? (and reasons why Python chose that when we call <strong>str</strong> on a list it shows the <strong>repr</strong> of the items?)</p>