# [Tutor] converting to Ascii from hex [writing a group()
function]

**Danny Yoo
**
dyoo@hkn.eecs.berkeley.edu

*Fri, 8 Feb 2002 01:26:52 -0800 (PST)*

On Fri, 8 Feb 2002, Danny Yoo wrote:
>* This looks good. If we want, we can write a few functions to tease out
*>* some of the functionality. A large part of the program appears to try
*>* grouping pairs of elements in the sequence. We can generalize the grouping
*>* by writing a function like this:
*>*
*>* ###
*>* def group(seq, n=2):
*>* """Given a sequence 'seq', returns a list that clumps up
*>* 'n' adjacent elements together. By default, n=2."""
*>* pieces = []
*>* for i in range(len(seq) / n):
*>* pieces.append(seq[i*n : (i+1)*n])
*>* return pieces
*>* ###
*
Hmmm... I should be careful about the division here, since Python is bound
to transition off to use true division, sooner or later. Here's another
version of the group() function:
###
def group(seq, n=2):
"""Given a sequence 'seq', returns a list that clumps up
'n' adjacent elements together. By default, n=2."""
pieces = []
for i in range(int(len(seq) / n)):
pieces.append(seq[i*n : (i+1)*n])
return pieces
###
There! This also makes explicit the fact that we do want to do a
truncation, so that group() always has groups that are 'n' elements long.
For example:
###
>>>* group(['key1', 'value1', 'key2', 'value2', 'key3'])
*[['key1', 'value1'], ['key2', 'value2']]
###
will make sure that we ignore any trailing pieces of a sequence when we're
doing a grouping.