def word_lengths(phrase):
return map(lambda x: len(x), phrase.split())
word_lengths('How long are the words in this phrase')
def digits_to_num_w_strings(digits):
return int(reduce(lambda x,y: str(x) + str(y), digits))
def digits_to_num(digits):
return reduce(lambda x, y: x*10+y, digits)
digits_to_num([3,4,3,2,1]) # should output 34321
def filter_words(word_list, letter):
return filter(lambda x: x[0] is letter, word_list)
l = ['hello','are','cat','dog','ham','hi','go','to','heart']
filter_words(l,'h')
def concatenate(L1, L2, connector):
return [elem1 + connector + elem2 for elem1, elem2 in zip(L1, L2)]
concatenate(['A','B'],['a','b'],'-') # expected output: ['A-a', 'B-b']
def d_list(L):
return_dic = {}
for i,v in enumerate(L):
return_dic[v] = i
return return_dic
def d_list_one_zip(L):
# the trick is that you can create a dict from a list of tuple
return dict(zip(L, range(0,len(L))))
def d_list_one(L):
return dict([(v,i) for i,v in enumerate(L)])
d_list_one(['a','b','c']) # expected output: {'a':0, 'b':1, 'c':2}
def count_match_index(L):
print len([vals for vals in enumerate(L) if vals[0] == vals[1]])
count_match_index([0,2,2,1,5,5,6,10]) # should output 4