In [2]:
from functools import *
xs = [1,2,3,4,5]
# print(sum(xs))
print(reduce(lambda acc,x: acc+x,xs,0))
15
In [3]:
print(reduce(lambda acc,x: acc*x,xs,1))
120
In [4]:
xs = ["john","alice","sam"]
# find longest string
longest = ""
for x in xs:
if len(x) > len(longest):
longest = x
print(longest)
print(reduce(lambda longest,x: x if len(x) > len(longest) else longest,xs,""))
alice alice
In [5]:
# wordValue("abacus") = 1+2+1+3+21+19 = 47
# wordValue("attitude") = 100
ss = "attitude"
print(reduce(lambda acc,x: acc + ord(x) - ord('a') + 1,ss,0))
100
In [6]:
ord('a')
Out[6]:
97
In [7]:
# frequencies("mississippi") = {'m':1, 'i':4, 's':4, 'p':2}
ss = "mississippi"
print(reduce(lambda acc,x: acc | {x:1+acc[x]} if x in acc else acc | {x:1},ss,{}))
{'m': 1, 'i': 4, 's': 4, 'p': 2}
In [8]:
set([1,2,3]) | set([3,4,5])
Out[8]:
{1, 2, 3, 4, 5}
In [9]:
set([1,2,3]).union(set([3,4,5]))
Out[9]:
{1, 2, 3, 4, 5}
In [10]:
import math
xs = [20,12,-46,3,5]
#minmax(xs) = (3,46)
#print(reduce(lambda acc,x: (min(acc[0],x),max(acc[1],x)),xs,(math.inf,-math.inf)))
#print(reduce(lambda acc,x: (min(acc[0],x),max(acc[1],x)),xs))
print(reduce(lambda acc,x: (x if x < acc[0] else acc[0], x if x > acc[1] else acc[1]),xs,(math.inf,-math.inf)))
(-46, 20)