こん○○は!
さっそく、先日、CheckIOに、入会できたところですが、 コーポレートサイトはリニューアル準備のためブログの更新が遅れておりました。
入会するとこのようなゲーム画面がまっております。
楽しそうですね~。 さっそく、第一ミッションに「」に挑戦します。Non-unique Elements
またまた意訳です。
さっそく解いてみます。まず、ベタに。から、要素の検索方法、取得&削除、追加方法を調べました。公式マニュアル
先頭から1つづ取り出して、重複していれば結果リストに追加していくというベタなコードです(笑)
def checkio(data):
out = []
while len(data) != 0:
x = data.pop(0)
if x in out or x in data:
out.append(x)
return out
なんか気持ち悪いですね~。超ベタすぎて、関数型をサポートしているPythonぽくない。ということで、関数型ぽいことを頑張ってみました。
さっきの公式マニュアルに指定した要素と同じ要素の数を調べるcountというメソッドがありました。また、以前チラ勉したことある、逐次処理するmap処理みたいなものがPythonにもないかと調べてみたら、リスト内包表記()というのがありましたので、こちらを使ってみました!python練習帳 リスト内包表記
def checkio(data):
return [x for x in data if data.count(x) != 1]
こちらもパス!シンプルでいいですね~。