INSIGHT

インサイト

2014年227

【CheckIOに挑戦②】 ミッションスタート!

こん○○は!

さっそく、先日、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]

こちらもパス!シンプルでいいですね~。