在 Python shell 中,如果输入以下列表内涵:
>>> [x for x in string.letters if x in [y for y in "BigMan on campus"]]
我得到了一个打印得很好的结果:
['a', 'c', 'g', 'i', 'm', 'n', 'o', 'p', 's', 'u', 'B', 'M']
字典理解也是如此:
>>> {x:x*2 for x in range(1,10)}
{1: 2, 2: 4, 3: 6, 4: 8, 5: 10, 6: 12, 7: 14, 8: 16, 9: 18}
如果我输入一个生成器表达式,就得不到这样友好的响应:
>>> (x for x in string.letters if x in (y for y in "BigMan on campus"))
<generator object <genexpr> at 0x1004a0be0>
我知道我能做到:
>>> for i in _: print i,
a c g i m n o p s u B M
除此之外(或者编写一个辅助函数) ,我是否可以轻松地在交互式 shell 中计算和打印生成器对象?