本文要点在于map()、eval()、repr()等内置函数的运用。
>>> def myMap(iterable, op, value):
if ((not isinstance(iterable, list)) or
(op not in '+-*/') or
(not isinstance(value, (int, float, complex)))):
return 'Error operator'
func = lambda i:eval(repr(i)+op+repr(value))
return list(map(func, iterable))
>>> myMap(list(range(6)), '+', 3)
[3, 4, 5, 6, 7, 8]
>>> myMap(list(range(6)), '-', 3)
[-3, -2, -1, 0, 1, 2]
>>> myMap(list(range(6)), '*', 3)
[0, 3, 6, 9, 12, 15]
>>> myMap(list(range(6)), '/', 3)
[0.0, 0.3333333333333333, 0.6666666666666666, 1.0, 1.3333333333333333, 1.6666666666666667]