]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.12] Use match/case in grouper() recipe (gh-113059) (gh-113197)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Fri, 15 Dec 2023 22:39:11 +0000 (23:39 +0100)
committerGitHub <noreply@github.com>
Fri, 15 Dec 2023 22:39:11 +0000 (22:39 +0000)
Doc/library/itertools.rst

index fc25e51678ac698f70ef82a8d962bbf0a37e8020..03127afe1b4460b28aa76759e6db8f4248b05592 100644 (file)
@@ -914,14 +914,15 @@ which incur interpreter overhead.
        # grouper('ABCDEFG', 3, incomplete='strict') --> ABC DEF ValueError
        # grouper('ABCDEFG', 3, incomplete='ignore') --> ABC DEF
        args = [iter(iterable)] * n
-       if incomplete == 'fill':
-           return zip_longest(*args, fillvalue=fillvalue)
-       elif incomplete == 'strict':
-           return zip(*args, strict=True)
-       elif incomplete == 'ignore':
-           return zip(*args)
-       else:
-           raise ValueError('Expected fill, strict, or ignore')
+       match incomplete:
+           case 'fill':
+               return zip_longest(*args, fillvalue=fillvalue)
+           case 'strict':
+               return zip(*args, strict=True)
+           case 'ignore':
+               return zip(*args)
+           case _:
+               raise ValueError('Expected fill, strict, or ignore')
 
    def sliding_window(iterable, n):
        # sliding_window('ABCDEFG', 4) --> ABCD BCDE CDEF DEFG