summaryrefslogtreecommitdiffstats
path: root/Doc/library
diff options
context:
space:
mode:
authorMichael Selik <mike@selik.org>2019-09-20 03:25:55 (GMT)
committerAbhilash Raj <maxking@users.noreply.github.com>2019-09-20 03:25:55 (GMT)
commit2702638eabe5f7b25f36d295f0ad78cb8d4eda05 (patch)
tree1231f4f3c8ca7667c98aafd33136dab024c980a0 /Doc/library
parent3368f3c6ae4140a0883e19350e672fd09c9db616 (diff)
downloadcpython-2702638eabe5f7b25f36d295f0ad78cb8d4eda05.zip
cpython-2702638eabe5f7b25f36d295f0ad78cb8d4eda05.tar.gz
cpython-2702638eabe5f7b25f36d295f0ad78cb8d4eda05.tar.bz2
bpo-34002: Minor efficiency and clarity improvements in email package. (GH-7999)
* Check intersection of two sets explicitly Comparing ``len(a) > ``len(a - b)`` is essentially looking for an intersection between the two sets. If set ``b`` does not intersect ``a`` then ``len(a - b)`` will be equal to ``len(a)``. This logic is more clearly expressed as ``a & b``. * Change while/pop to a for-loop Copying the list, then repeatedly popping the first element was unnecessarily slow. I also cleaned up a couple other inefficiencies. There's no need to unpack a tuple, then re-pack and append it. The list can be created with the first element instead of empty. Secondly, the ``endswith`` method returns a bool, so there's no need for an if- statement to set ``encoding`` to True or False. * Use set.intersection to check for intersections ``a.intersection(b)`` method is more clear of purpose than ``not a.isdisjoint(b)`` and avoids an unnecessary set construction that ``a & set(b)`` performs. * Use not isdisjoint instead of intersection While it reads slightly worse, the isdisjoint method will stop when it finds a counterexample and returns a bool, rather than looping over the entire iterable and constructing a new set.
Diffstat (limited to 'Doc/library')
0 files changed, 0 insertions, 0 deletions