newbie: working iwth list of tuples
Raymond Hettinger
python at rcn.com
Sun Jan 29 03:04:55 EST 2006
[Raymond Hettinger]
> Parameterized filter, extract, and reduce functions can be handled in a
> like manner.
Just for grins, here is a more worked-out example:
def pfunc(inputfields, operation):
"Parameterized computation of a new field"
# For example, append a field that is the sum of fields 1 and 3:
# z = pfunc((1, 3), operator.add)
# print map(z, database)
def z(record):
newfield = operation(*[record[f] for f in inputfields])
return record + (newfield,)
return z
def rfunc(inputfield, operation):
"Parameterized reduce operation"
#
# For example, find the maximum value of field 2:
# r = rfunc(2, max)
# print reduce(r, database)
def z(cumval, record):
x = record[inputfield]
return operation(cumval, x)
return z
def filt_func(inputfields, operation):
"Parameterized filter operation"
#
# For example, get records where field1 < field2:
# f = filt_func((1, 3), operator.lt)
# print filter(f, database)
def z(record):
i, j = inputfields
return operation(i, j)
return z
def xfunc(fields):
"Parameterized extract operation"
#
# For example, extract fields 1, 3, and 4
# x = xfunc((1,3,4))
# print map(x, database)
def z(record):
return tuple([record[f] for f in fields])
return z
# ---- The examples can be run on the following sample database: ----
database = [
(10, 25, 30, 40, 50, 60),
(100, 250, 300, 400, 500, 600),
(1, 2.5, 3, 4, 5, 6),
]
More information about the Python-list
mailing list