In [1]:
a = (i*i for i in range(3))

In [2]:
a


Out[2]:
<generator object <genexpr> at 0xb4b53d24>

In [3]:
tuple(a)


Out[3]:
(0, 1, 4)

In [4]:
tuple(a)


Out[4]:
()

In [5]:
a = (i*i for i in range(3))

In [6]:
a


Out[6]:
<generator object <genexpr> at 0xb4b6e20c>

In [7]:
list(a)


Out[7]:
[0, 1, 4]

In [8]:
a = (i*i for i in range(3))

In [9]:
a


Out[9]:
<generator object <genexpr> at 0xb4b6e414>

In [10]:
set(a)


Out[10]:
{0, 1, 4}

In [11]:
def foo():
    yield 3

In [12]:
[i for i in foo()]


Out[12]:
[3]

In [13]:
def foo():
    yield 3
    yield from (i*i for i in range(3))
    yield 'hello'
    yield from 'hello'
    yield [5, 'there']

In [14]:
[i for i in foo()]


Out[14]:
[3, 0, 1, 4, 'hello', 'h', 'e', 'l', 'l', 'o', [5, 'there']]

In [15]:
def foo():
    yield 'five'
    yield from (3, 4,5, 'hello')
    yield 'more'

In [16]:
[i for i in foo()]


Out[16]:
['five', 3, 4, 5, 'hello', 'more']