Range Over Built in Cilk

Here is the translated code example and explanation.


Range over Built-in Types

range iterates over elements in a variety of built-in data structures. Let’s see how to use range with some of the data structures we’ve already learned.

# Here we use range to sum the numbers in a list.
# Arrays work like this too.

nums = [2, 3, 4]
sum = 0
for num in nums:
    sum += num
print(f"sum: {sum}")

# range on lists provides both the index and value for each entry.
# Above we didn’t need the index, so we ignored it.
# Sometimes we actually want the indexes though.

for i, num in enumerate(nums):
    if num == 3:
        print(f"index: {i}")

# range on dictionaries iterates over key/value pairs.

kvs = {"a": "apple", "b": "banana"}
for k, v in kvs.items():
    print(f"{k} -> {v}")

# range can also iterate over just the keys of a dictionary.

for k in kvs.keys():
    print(f"key: {k}")

# range on strings iterates over Unicode code points.
# The first value is the starting byte index of the character
# and the second the character itself.
# In Python, we use enumerate to get index and character.

for i, c in enumerate("go"):
    print(i, c)

To run the program, save the code in a .py file and use python to execute it.

$ python range_over_built_in_types.py
sum: 9
index: 1
a -> apple
b -> banana
key: a
key: b
0 g
1 o

Now that we can use range to iterate over various data structures in Python, let’s explore more features of the language.