るりまサーチ

最速Rubyリファレンスマニュアル検索!
253件ヒット [1-100件を表示] (0.077秒)
トップページ > クエリ:-[x] > クエリ:sort_by[x]

別のキーワード

  1. _builtin sort
  2. array sort_by!
  3. array sort!
  4. array sort
  5. _builtin sort_by

ライブラリ

クラス

モジュール

キーワード

検索結果

<< 1 2 3 > >>

Enumerable#sort_by -> Enumerator (18256.0)

ブロックの評価結果を <=> メソッドで比較することで、self を昇 順にソートします。ソートされた配列を新たに生成して返します。

...{
class Array
def sort_by
self.map {|i| [yield(i), i] }.
sort {|a, b| a[0] <=> b[0] }.
map {|i| i[1]}
end
end
//}

Enumerable#sort と比較して sort_by が優れている点として、
比較条件が複雑な場合の速度が挙げられます。
sort_by
を使わない...
...<=> b.downcase }
//}

一方、次のように sort_by を使うと downcase の実行回数は要素数と同じです。
つまり、その部分の実行時間は O(n) のオーダーです。

//emlist[][ruby]{
p ["BAR", "FOO", "bar", "foo"].sort_by {|v| v.downcase }
//}

以下の、実行回...
...# => 18200

$n = 0
ary.sort_by {|v| v.count }
p $n # => 1000
//}

Enumerable#sort_by は安定ではありません (unstable sort)。
ただし、sort_by を以下のように使うと安定なソートを実装できます。

//emlist[][ruby]{
i = 0
ary.sort_by {|v| [v, i += 1] }
//}...

Enumerable#sort_by {|item| ... } -> [object] (18256.0)

ブロックの評価結果を <=> メソッドで比較することで、self を昇 順にソートします。ソートされた配列を新たに生成して返します。

...{
class Array
def sort_by
self.map {|i| [yield(i), i] }.
sort {|a, b| a[0] <=> b[0] }.
map {|i| i[1]}
end
end
//}

Enumerable#sort と比較して sort_by が優れている点として、
比較条件が複雑な場合の速度が挙げられます。
sort_by
を使わない...
...<=> b.downcase }
//}

一方、次のように sort_by を使うと downcase の実行回数は要素数と同じです。
つまり、その部分の実行時間は O(n) のオーダーです。

//emlist[][ruby]{
p ["BAR", "FOO", "bar", "foo"].sort_by {|v| v.downcase }
//}

以下の、実行回...
...# => 18200

$n = 0
ary.sort_by {|v| v.count }
p $n # => 1000
//}

Enumerable#sort_by は安定ではありません (unstable sort)。
ただし、sort_by を以下のように使うと安定なソートを実装できます。

//emlist[][ruby]{
i = 0
ary.sort_by {|v| [v, i += 1] }
//}...

Array#sort_by! -> Enumerator (6230.0)

sort_by の破壊的バージョンです。

...sort_by の破壊的バージョンです。

ブロックを省略した場合は Enumerator を返します。

//emlist[例][ruby]{
fruits = %w{apple pear fig}
fruits.sort_by! { |word| word.length }
fruits # => ["fig", "pear", "apple"]
//}

@see Enumerable#sort_by...

Array#sort_by! {|item| ... } -> self (6230.0)

sort_by の破壊的バージョンです。

...sort_by の破壊的バージョンです。

ブロックを省略した場合は Enumerator を返します。

//emlist[例][ruby]{
fruits = %w{apple pear fig}
fruits.sort_by! { |word| word.length }
fruits # => ["fig", "pear", "apple"]
//}

@see Enumerable#sort_by...

1.6.8から1.8.0への変更点(まとめ) (2526.0)

1.6.8から1.8.0への変更点(まとめ) * ((<1.6.8から1.8.0への変更点(まとめ)/インタプリタの変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたクラス/モジュール>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたメソッド>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加された定数>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張されたクラス/メソッド(互換性のある変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/変更されたクラス/メソッド(互換性のない変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/文法の変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/正規表現>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Marshal>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Windows 対応>)) * ((<1.6.8から1.8.0への変更点(まとめ)/廃止された(される予定の)機能>)) * ((<1.6.8から1.8.0への変更点(まとめ)/ライブラリ>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張ライブラリAPI>)) * ((<1.6.8から1.8.0への変更点(まとめ)/バグ修正>)) * ((<1.6.8から1.8.0への変更点(まとめ)/サポートプラットフォームの追加>))

...作はなくなりました)

$defout や $deferr に代入を行うと警告がでます。
(注:1.6 に $deferr はありません)
((<ruby-dev:20961>))

$stdin にオブジェクトを代入すると標準入力からの入力メソッド(gets 等)
はそのオブジェクトにメソ...
...: 警告を出力しない (-W0 新しい警告レベル)
* false: 重要な警告のみ出力 (-W1 デフォルト)
* true: すべての警告を出力する (-W2 or -W or -v or -w or --verbose)

追加された -W オプションは $VERBOSE = nil の指定(-W0)を可能にします。

:...
...されました。

=== Enumerable

: ((<Enumerable#partition|Enumerable/partition>)) [new]

追加

: ((<Enumerable#sort_by|Enumerable/sort_by>)) [new]

追加。((<ruby-dev:8986>))以降で提案された Schwartzian transform
を行うための sort です。

: ((<Enumerable#all?|Enum...

絞り込み条件を変える

Ruby用語集 (132.0)

Ruby用語集 A B C D E F G I J M N O R S Y

...l#percent

: 0 オリジン
: zero-based
番号が 0 から始まること。

例えば、
Array や Vector、Matrix などの要素の番号、
String における文字の位置、
といったものは 0 オリジンである。

: 1 オリジン
: one-based
番号が 1 から始ま...
...ログラミング言語。
型推論を持った静的型付け言語であり、処理系はコンパイラーである。

https://ja.crystal-lang.org/

: CSI 方式
CSI は Code Set Independent の頭字語。
プログラミング言語の処理系が文字列を扱う際のエンコー...
...ることが
できない。

イテレーターメソッドでは繰り返したい処理をブロックで与える。
また、Enumerable#sort_by、Enumerable#group_by、
Enumerable#max_by などのように、要素に対する「評価関数」
としてブロックを要求するメ...

yaml (126.0)

構造化されたデータを表現するフォーマットであるYAML (YAML Ain't Markup Language) を扱うためのライブラリです。

...OT
-
--
-
Taro san
-
Jiro san
-
Saburo san
YAML_EOT

p str_r == str_l # => true
//}

//emlist[例2: 構造化されたハッシュ][ruby]{
require 'yaml'
require 'date'

str_l = <<~YAML_EOT
Tanaka Taro: {age: 35, birthday: 1970-01-01}
Suzuki Suneo: {
age: 13,
birthday: 1992-12-21...
...ire 'yaml'
require 'stringio'

strio_r = StringIO.new(<<~YAML_EOT)
-
--
time: 2008-02-25 17:03:12 +09:00
target: YAML
version: 4
log: |
例を加えた。
アブストラクトを修正した。
-
--
time: 2008-02-24 17:00:35 +09:00
target: YAML
version: 3
log: |
アブ...
...strio_r).sort_by{ |a| a["version"] }.each do |obj|
puts "version %d\ntime %s\ntarget:%s\n%s\n" % obj.values_at("version", "time", "target", "log")
end

# =>
# version 3
# time 2008-02-24 17:00:35 +0900
# target:YAML
# アブストラクトを書いた。
#
# version 4
# time 2008-02-25 17:03...

Array#sort -> Array (124.0)

配列の内容をソートします。要素同士の比較は <=> 演算子を使って行います。sort はソートされた配列を生成して返します。 sort! は self を破壊的にソートし、self を返します。

...るとこうなる)
p ary2.sort{|a, b| a.to_i <=> b.to_i } #=> ["7", "8", "9", "10", "11"] (ブロックを使って数字としてソート)

# sort_by を使っても良い
p ary2.sort_by{|x| x.to_i } #=> ["7", "8", "9", "10", "11"]
//}

@see Enumerable#sort_by
, Array#sort_by!...

Array#sort {|a, b| ... } -> Array (124.0)

配列の内容をソートします。要素同士の比較は <=> 演算子を使って行います。sort はソートされた配列を生成して返します。 sort! は self を破壊的にソートし、self を返します。

...るとこうなる)
p ary2.sort{|a, b| a.to_i <=> b.to_i } #=> ["7", "8", "9", "10", "11"] (ブロックを使って数字としてソート)

# sort_by を使っても良い
p ary2.sort_by{|x| x.to_i } #=> ["7", "8", "9", "10", "11"]
//}

@see Enumerable#sort_by
, Array#sort_by!...

Array#sort! -> self (124.0)

配列の内容をソートします。要素同士の比較は <=> 演算子を使って行います。sort はソートされた配列を生成して返します。 sort! は self を破壊的にソートし、self を返します。

...るとこうなる)
p ary2.sort{|a, b| a.to_i <=> b.to_i } #=> ["7", "8", "9", "10", "11"] (ブロックを使って数字としてソート)

# sort_by を使っても良い
p ary2.sort_by{|x| x.to_i } #=> ["7", "8", "9", "10", "11"]
//}

@see Enumerable#sort_by
, Array#sort_by!...

絞り込み条件を変える

<< 1 2 3 > >>