mirror of
https://github.com/python/cpython.git
synced 2024-12-05 07:43:50 +08:00
2702638eab
* 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. |
||
---|---|---|
.. | ||
mime | ||
__init__.py | ||
_encoded_words.py | ||
_header_value_parser.py | ||
_parseaddr.py | ||
_policybase.py | ||
architecture.rst | ||
base64mime.py | ||
charset.py | ||
contentmanager.py | ||
encoders.py | ||
errors.py | ||
feedparser.py | ||
generator.py | ||
header.py | ||
headerregistry.py | ||
iterators.py | ||
message.py | ||
parser.py | ||
policy.py | ||
quoprimime.py | ||
utils.py |