summaryrefslogtreecommitdiff
path: root/Lib
diff options
context:
space:
mode:
Diffstat (limited to 'Lib')
-rw-r--r--Lib/heapq.py10
-rw-r--r--Lib/test/test_builtin.py4
2 files changed, 6 insertions, 8 deletions
diff --git a/Lib/heapq.py b/Lib/heapq.py
index b31f4186cf..0e3555cf91 100644
--- a/Lib/heapq.py
+++ b/Lib/heapq.py
@@ -468,10 +468,7 @@ def nsmallest(n, iterable, key=None):
if n == 1:
it = iter(iterable)
sentinel = object()
- if key is None:
- result = min(it, default=sentinel)
- else:
- result = min(it, default=sentinel, key=key)
+ result = min(it, default=sentinel, key=key)
return [] if result is sentinel else [result]
# When n>=size, it's faster to use sorted()
@@ -531,10 +528,7 @@ def nlargest(n, iterable, key=None):
if n == 1:
it = iter(iterable)
sentinel = object()
- if key is None:
- result = max(it, default=sentinel)
- else:
- result = max(it, default=sentinel, key=key)
+ result = max(it, default=sentinel, key=key)
return [] if result is sentinel else [result]
# When n>=size, it's faster to use sorted()
diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py
index 8f91bc9bf9..233c579356 100644
--- a/Lib/test/test_builtin.py
+++ b/Lib/test/test_builtin.py
@@ -905,6 +905,8 @@ class BuiltinTest(unittest.TestCase):
self.assertEqual(max((), default=1, key=neg), 1)
self.assertEqual(max((1, 2), default=3, key=neg), 1)
+ self.assertEqual(max((1, 2), key=None), 2)
+
data = [random.randrange(200) for i in range(100)]
keys = dict((elem, random.randrange(50)) for elem in data)
f = keys.__getitem__
@@ -957,6 +959,8 @@ class BuiltinTest(unittest.TestCase):
self.assertEqual(min((), default=1, key=neg), 1)
self.assertEqual(min((1, 2), default=1, key=neg), 2)
+ self.assertEqual(min((1, 2), key=None), 1)
+
data = [random.randrange(200) for i in range(100)]
keys = dict((elem, random.randrange(50)) for elem in data)
f = keys.__getitem__