mirror of
https://github.com/python/cpython.git
synced 2025-10-09 16:34:44 +00:00
Make built-in zip() equal to itertools.izip().
I mea, *really* equal -- for now, the implementation just imports itertools. :-) The only other changes necessary were various unit tests that were assuming zip() returns a real list. No "real" code made this assumption.
This commit is contained in:
parent
d38abe9484
commit
801f0d78b5
6 changed files with 62 additions and 139 deletions
|
@ -1554,18 +1554,18 @@ class BuiltinTest(unittest.TestCase):
|
|||
a = (1, 2, 3)
|
||||
b = (4, 5, 6)
|
||||
t = [(1, 4), (2, 5), (3, 6)]
|
||||
self.assertEqual(zip(a, b), t)
|
||||
self.assertEqual(list(zip(a, b)), t)
|
||||
b = [4, 5, 6]
|
||||
self.assertEqual(zip(a, b), t)
|
||||
self.assertEqual(list(zip(a, b)), t)
|
||||
b = (4, 5, 6, 7)
|
||||
self.assertEqual(zip(a, b), t)
|
||||
self.assertEqual(list(zip(a, b)), t)
|
||||
class I:
|
||||
def __getitem__(self, i):
|
||||
if i < 0 or i > 2: raise IndexError
|
||||
return i + 4
|
||||
self.assertEqual(zip(a, I()), t)
|
||||
self.assertEqual(zip(), [])
|
||||
self.assertEqual(zip(*[]), [])
|
||||
self.assertEqual(list(zip(a, I())), t)
|
||||
self.assertEqual(list(zip()), [])
|
||||
self.assertEqual(list(zip(*[])), [])
|
||||
self.assertRaises(TypeError, zip, None)
|
||||
class G:
|
||||
pass
|
||||
|
@ -1581,7 +1581,7 @@ class BuiltinTest(unittest.TestCase):
|
|||
else:
|
||||
return i
|
||||
self.assertEqual(
|
||||
zip(SequenceWithoutALength(), xrange(2**30)),
|
||||
list(zip(SequenceWithoutALength(), xrange(2**30))),
|
||||
list(enumerate(range(5)))
|
||||
)
|
||||
|
||||
|
@ -1591,7 +1591,7 @@ class BuiltinTest(unittest.TestCase):
|
|||
raise ValueError
|
||||
else:
|
||||
return i
|
||||
self.assertRaises(ValueError, zip, BadSeq(), BadSeq())
|
||||
self.assertRaises(ValueError, list, zip(BadSeq(), BadSeq()))
|
||||
|
||||
class TestSorted(unittest.TestCase):
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue