Просмотр исходного кода

Merge pull request #25 from apsz3/builtin/enumerate

Add `enumerate` builtin
BLUELOVETH 3 лет назад
Родитель
Сommit
69338f316d
2 измененных файлов с 9 добавлено и 0 удалено
  1. 6 0
      src/builtins.h
  2. 3 0
      tests/_builtin_ty.py

+ 6 - 0
src/builtins.h

@@ -44,6 +44,12 @@ def any(iterable):
             return True
     return False
 
+def enumerate(iterable, start=0):
+    n = start
+    for elem in iterable:
+        yield n, elem
+        n += 1
+
 def sum(iterable):
     res = 0
     for i in iterable:

+ 3 - 0
tests/_builtin_ty.py

@@ -199,3 +199,6 @@ assert all([True, 1])
 assert not all([False])
 assert not all([True, False])
 assert not all([False, False])
+
+assert list(enumerate([1,2,3])) == [(0,1), (1,2), (2,3)]
+assert list(enumerate([1,2,3], 1)) == [(1,1), (2,2), (3,3)]