Python列表与数字的四则运算

2016-10-06 董付国 Python小屋 Python小屋

本文要点在于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]