関数も項とできる関数(2階述語論理)
'''辞書 d が与えられたとき、 最大の値を持つキー(複数個ならばそのいずれか)を返す関数 max_value_key(d) を、 max を使って定義してください。 ''' # 解答 def max_value_key(d): return max(d, key=lambda x: d[x]) # 例 (map) list(map(lambda x: x+1, map(abs, [3,-8,1,0,7,-5]))) #Out: [4, 9, 2, 1, 8, 6] sum(map(lambda x: x+1, map(abs, [3,-8,1,0,7,-5]))) #Out: 30 # 解答 def max_abs(ln): return max(map(abs, ln)) # 例 (filter) def pos(x): if x>0: return True else: return False list(filter(pos, [3,-8,1,0,7,-5])) '''数のリスト ln と数 n を受け取って、 ln の要素のうち、n より大きい個数を返す 関数 number_of_big_numbers(ln, n) ''' # 解答 def number_of_big_numbers(ln, n): return len(tuple(filter(lambda x: x>n, ln))) print(number_of_big_numbers([10, 0, 7, 1, 5, 2, 9], 5) == 3) # 解答 def number_of_long_lines(file, n): with open(file, 'r', encoding='utf-8') as f: return len(list(filter(lambda x: len(x)>n, f)))