python; checkio日記

checkioを中心にpythonプログラミングの記録

2018-02-01から1ヶ月間の記事一覧

Elementary 問題 最大繰り返しの文字を返す

['a', 'a', 'b', 'c', 'd']だったら'a'を返す関数 これは、先ほどのkeyを使って most_frequent = lambda x: sorted(x, key=lambda y: x.count(y))[-1] といったが、maxもkeyがあるみたいで most_frequent = lambda x: max(x, key=lambda y: x.count(y)) でも…

Elementary 問題 絶対値での並び替え

[-3, 2, 1, -8]なら[1, 2, -3, -8]と並び替える。 リストのindexを取り出してそれで並び替えるというようなことをしたいが、関数を知らないので力技で def checkio(x): ans=[] order = sorted([abs(i) for i in x]) for i in range(len(order)): for j in x:…

Elementary 問題 Fizz Buzz

3で割り切れたらFizz、5で割り切れたらBuzz、15で割り切れたらFizz Buzzを、それ以外ではそのままの番号を(文字列で)返す問題 def checkio(x): ans = (x%3 == 0)*'Fizz' + (x%15 ==0)*' ' + (x%5 ==0)*'Buzz' if ans =='': return str(x) else: return ans…

Elementary問題 辞書中で最大valueを持つkey

辞書中の最大の値を持つkeyを求める関数 def best_stock(data): return ''.join([i for (i, j) in data.items() if j==max(data.values())]) としたが、全くいけてない。 一番エレガントなのは best_stock = lambda data: max(data, key=data.get) このdata.…

Elementary 問題 Correct sentence

英文の最初を大文字にして、最後にピリオドを打つ。もし正しく書いてあればそのままという関数 def correct_sentence(text: str) -> str: ans = text[0].upper()+text[1:] if text[-1] != '.': ans = ans + '.' return ans 下記には唸った。真偽判定を掛け算…