[OFF] sed equivalent of something easy in python
Tim Chase
python.list at tim.thechases.com
Wed Oct 27 13:33:48 EDT 2010
On 10/27/10 09:39, Jussi Piitulainen wrote:
>> So, is there some simple expression in Python for this? Just asking
>> out of curiosity when nothing comes to mind, not implying that there
>> should be or that Python should be changed in any way.
>
> To expand, below is the best I can think of in Python 3 and I'm
> curious if there is something much more concise built in that I am
> missing.
>
> def sed(source, skip, keep, drop):
>
> '''First skip some elements from source,
> then keep yielding some and dropping
> some: sed(source, 1, 2, 3) to skip 1,
> yield 2, drop 3, yield 2, drop 3, ...'''
>
> for _ in range(0, skip):
> next(source)
> while True:
> for _ in range(0, keep):
> yield next(source)
> for _ in range(0, drop):
> next(source)
Could be done as: (py2.x in this case, adjust accordingly for 3.x)
def sed(source, skip, keep, drop):
for _ in range(skip): source.next()
tot = keep + drop
for i, item in enumerate(source):
if i % tot < keep:
yield item
-tkc
More information about the Python-list
mailing list