﻿ Python: Build a list, using an iterator function and an initial seed value - w3resource

# Python: Builds a list, using an iterator function and an initial seed value

## Python List: Exercise - 219 with Solution

Write a Python program to build a list, using an iterator function and an initial seed value.

• The iterator function accepts one argument (seed) and must always return a list with two elements ([value, nextSeed]) or False to terminate.
• Use a generator function, fn_generator, that uses a while loop to call the iterator function and yield the value until it returns False.
• Use a list comprehension to return the list that is produced by the generator, using the iterator function.

Sample Solution:

Python Code:

``````def unfold(fn, seed):
def fn_generator(val):
while True:
val = fn(val)
if val == False: break
yield val
return [i for i in fn_generator([None, seed])]
f = lambda n: False if n > 40 else [-n, n + 10]
print(unfold(f, 10))
```
```

Sample Output:

```[-10, -20, -30, -40]
```

Flowchart: ## Visualize Python code execution:

The following tool visualize what the computer is doing step-by-step as it executes the said program:

Python Code Editor:

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.

﻿

## Python: Tips of the Day

Decapitalizes the first letter of a string:

Example:

```def tips_decapitalize(s, upper_rest=False):
return s[:1].lower() + (s[1:].upper() if upper_rest else s[1:])
print(tips_decapitalize('PythonTips'))
print(tips_decapitalize('PythonTips', True))
```

Output:

```pythonTips
pYTHONTIPS
```

We are closing our Disqus commenting system for some maintenanace issues. You may write to us at reach[at]yahoo[dot]com or visit us at Facebook