On 2021-08-23 at 21:06:46 -0000, Tim Hoffmann via Python-ideas <python-ideas@python.org> wrote:
> - Re bool: As experienced python users we are used to translate `if > not users` to "if users is empty" or "if we have no users", but it > *is* less explicit than `if users.is_empty()`. I mentally translate "if not users" to "if there are not users" or "if there are no users." Whether users is a list (or some other sequence), a dict (or some other mapping), a set, or even some oddball collection type (e.g., the responses from a database query) is an implementation detail about which I don't care at that point. > - Re len: `if not len(users)` or `if len(users) == 0` is more > explicit, but its semantically on a lower level. Counting elements is > a more detailed operation than only checking if we have any > element. That detail is not needed and distracting if we are only > interested in is_empty. This is vaguely similar to iterating over > indices (`for i in range(len(users))`) vs. iterating over elements > (`for user in users`). We don't iterate over indices because that's > usually a detail we don't need. Exactly. Asking whether a collection contains an element is on a slightly lower level than asking whether or not "there are any [Xs]." _______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/B2ECN5IXNOOUVOMIHCTTAD3NQXSSXVTK/ Code of Conduct: http://python.org/psf/codeofconduct/