【Perl,PHP】LLバトルロワイヤル13【Ruby,Python】
■ このスレッドは過去ログ倉庫に格納されています
0175デフォルトの名無しさん
2010/10/28(木) 06:59:27filenames = glob.glob('*.html')
def tmp(name):
m = re.search(r'(¥w+)-(¥d+)', name)
return m.group(1), int(m.group(2))
filenames.sort(key=tmp)
うーん今いち。いちいち関数定義を書かなきゃいけないし、テンポラリな関数がsort()より先に来ちゃうし。
できればテンポラリな関数よりメインの処理であるsort()が先に来てほしいよね。
filenames = Dir.glob('*.html')
filenames.sort_by! {|name| name =~ /(¥w+)-(¥d+)/ and [$1, $2.to_i] }
こっちのほうが自然に頭から読み下せる。
他の関数言語なら、いちいちテンポラリな関数を定義しなくて済むし、テンポラリな関数より
メインの処理となる関数名のほうが先に出てくるから、理解しやすい。
それに慣れるとPythonのやり方は不自由を感じる。
こうとか本当に書けないのかな。
filenames.sort(key=lambda name:
m = re.search(r'(¥w+)-(¥d+)', name)
return m.group(1), int(m.group(2))
)
>>127
Pythonエキスパート(と書いて信者と読む)は何をいっても聞く耳持たないって。
前スレでわかっただろ?相手するだけ無駄。
> あれは、要はlambdaがまともなら本来不要な代物で、不便だから導入されたんだろう
同意。ほんとは要らないはずなんだよな、あんな機能。
■ このスレッドは過去ログ倉庫に格納されています