CheckiOを解きました。

問題
与えられた配列の中央値を復帰する。
配列の要素数が偶数の場合は、中央値2要素の平均値を復帰する。


------------------
def checkio(data):

#replace this for solution
i = int(len(data) / 2)
if len(data) % 2 == 1:
return sorted(data)[i]
else:
tmp = sorted(data)
return float((tmp[i] + tmp[i - 1])) / 2
------------------

ソートして、配列の半分の位置を復帰している。

return文をうまい具合に1つにできたらなぁ。
奇数のときも中央値+中央値/2=中央値になるから、
なんとかなると思うんですけどね。
さらっと思いつきませんでした。

他の人の回答と自分のを比較すると、
まだまだPythonっぽくないなぁって感じ

ちょっとずつ慣れていくしかないですね
まず、プログラミングをしないと「ユーザー登録」が出来ない開発者コミュニティ「CheckiO」が天才過ぎる!
http://plus.appgiga.jp/masatolan/2014/02/13/50594/

面白そうだったので始めました。

問題を解いたらメモがてらブログに書いていこうと思います。
CheckiOを見れば残っているんですけど、
日本語でメモを残しておきたくてw

さっそく最初の問題を

問題:
パラメタに渡された配列で、
ユニークな要素を削除して復帰する

-------------------------------------------
def checkio(data):
#Your code here
#It's main function. Don't remove this function
#It's using for auto-testing and must return a result for check.

#replace this for solution
result = []
for element in data :
i = 0
for target in data :
if element == target :
i = i + 1
if i > 1 :
result.append(element)

return result

-------------------------------

私の答え
2重配列で複数の要素が見つかった場合にリストに追加するという方法。
まったく美しくない……
Pythonの勉強しないと厳しいですね。

人気のある回答はcountを使ったもの。
それなら、一回の繰り返しでできますね。
2行で実現している人もいて、驚きました。

Pythonは用意されているAPIを駆使すれば、
きれいなコードが書けて楽しいですね。

昼飯がわりにケーキワンホール食べたら気持ち悪い。頭痛い。死にそう。