tee function из библиотеки itertools

Объекты list и islice являются итерируемыми, но почему такая разница в результате.

r = [1, 2, 3, 4]               
i1, i2 = tee(r)
print [e for e in r if e < 3]
print [e for e in i2]
#[1, 2]
#[1, 2, 3, 4]


r = islice(count(), 1, 5)          
i1, i2 = tee(r)
print [e for e in r if e < 3]
print [e for e in i2]
#[1, 2]
#[]
5
задан John 12 June 2012 в 14:43
поделиться