アレイのuniq
- どう書く?org: アレイのuniq (http://ja.doukaku.org/16/)
xs = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9] sorted(set(xs), key=xs.index)
require 'set' xs = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9] Set.new(xs).sort {|l, r| xs.index(l) <=> xs.index(r) }
Set.new(xs)した時点で何故か元の順番に並んでいたが強制的にソートした。Rubyはきれいだと思うがコードブロックを1行で書くのか3行で書くのか迷う。縦に短くしたいなら長くならない限り1行に収めた方が良いのかも。PythonのPEP 8にあたる文書がRubyにはないのかな?それにしてもコードブロックは便利すぎる。