Cases[{e1,e2,…},pattern]
パターンにマッチする要素 eiをリストにして返す.
Cases[{e1,…},patternrhs]
パターンにマッチし,要素 eiに対応する rhs の値をリストにして返す.
Cases[expr,pattern,levelspec]
levelspec によって指定され,パターンにマッチするレベルにある式 expr のすべての部分をリストにして返す.
Cases[expr,patternrhs,levelspec]
パターンにマッチする rhs の値を返す.
Cases[expr,pattern,levelspec,n]
expr の中でパターンにマッチする最初の n 個の部分を返す.
Cases
Cases[{e1,e2,…},pattern]
パターンにマッチする要素 eiをリストにして返す.
Cases[{e1,…},patternrhs]
パターンにマッチし,要素 eiに対応する rhs の値をリストにして返す.
Cases[expr,pattern,levelspec]
levelspec によって指定され,パターンにマッチするレベルにある式 expr のすべての部分をリストにして返す.
Cases[expr,patternrhs,levelspec]
パターンにマッチする rhs の値を返す.
Cases[expr,pattern,levelspec,n]
expr の中でパターンにマッチする最初の n 個の部分を返す.
詳細とオプション
- Casesの第1引数の頭部がListである必要はない.
- Associationに用いられた場合,Casesは要素をその値に応じて選び出す.
- Cases[expr,pattern:>rhs]はパターンが見付かったときにだけ rhs を評価する.
- Cases[pattern][list]はCases[list,pattern]に等しい.
- Casesは標準的なレベル指定を使用する.
-
n レベル1からレベル n まで Infinity レベル1からInfinityまで {n} レベル n のみ {n1,n2} レベル n1からレベル n2まで - Casesにおける levelspec のデフォルト値は{1}である.
- 正のレベル n は,n 個の指標で指定される expr のすべての部分からなる.
- 負のレベル-n は,深度 n の expr のすべての部分からなる.
- レベル-1は数,記号,それに下位区分を持たないその他のオブジェクトからなる.
- レベル0は式全体に相当する.
- オプション設定がHeads->Trueのとき,Casesは式の頭部および式の各部分を見る.
- Casesは,深度優先の順序で,根の前に葉を訪れ,expr の部分を横断する.
- Parallelize[Cases[expr,pattern]]あるいはParallelCases[expr,pattern]は,Cases[expr,pattern]をすべてのサブカーネルで並列に計算する. »
例題
すべて開く すべて閉じる例 (4)
Cases[{1, 1, f[a], 2, 3, y, f[8], 9, f[10]}, _Integer]Cases[{1, 1, f[a], 2, 3, y, f[8], 9, f[10]}, Except[_Integer]]Cases[{1, 1, f[a], 2, 3, y, f[8], 9, f[10]}, f[x_] -> x]Casesの演算子形を使う:
Cases[_Integer][{1, 1, f[a], 2, 3, y, f[8], 9, f[10]}]Associationから要素を取り出す:
Cases[<|1 -> "a", 2 -> "b", 3 -> c, 4 -> d|>, _Symbol]スコープ (10)
Cases[{{1, 2}, {2}, {3, 4, 1}, {5, 4}, {3, 3}}, {_, _}]Cases[{{1, 2}, {2}, {3, 4, 1}, {5, 4}, {3, 3}}, {a_, b_} -> a + b]Cases[{1, 0, 2, 0, 3, 5, 6, 7, 0, 0, 0}, Except[0]]Cases[{{1, 4, a, 0}, {b, 3, 2, 2}, {c, c, 5, 5}}, _Integer, 2]Cases[Sqrt[Range[100]], _Integer, {1}, 3]明示的な要素が見付かってはじめて:>を使って評価するようにする:
Cases[{f[{a, b}], f[{a}], g[{a}], f[{a, b, c, d}]}, f[x_] :> Length[x]]Cases[{1, 2, f[a, b]}, _, {0, Infinity}]Cases[{1, 2, f[a, b]}, _, {0, Infinity}, Heads -> True]Cases[<|1 -> c, 2 -> <|3 -> 1, a -> b|>|>, _Symbol, Infinity]Associationにマッチする要素をListから取り出す:
Cases[{<|a -> 1|>, <|b -> 2|>}, <|a -> _|>]マッチする各Associationのキーを求める:
Cases[{<|a -> 1|>, <|b -> 2|>, <|c -> 1|>}, <|x_ -> 1|> -> x]Cases[{<|x -> 1, z -> 1|>, <|x -> 1, y -> 2|>}, <|a_ -> _, b_ -> _|> :> {a, b}]Cases[{<|1 -> x|>, <|2 -> x|>}, <|a_ /; EvenQ[a] -> _|>]Cases[{<|1 -> x|>, <|2 -> x|>}, <|a_ -> _|> /; EvenQ[a]]オプション (1)
特性と関係 (2)
考えられる問題 (1)
Cases[{1, b -> Automatic, c -> 3}, _ -> Automatic]HoldPatternを使って規則それ自身をパターンとして扱う:
Cases[{1, b -> Automatic, c -> 3}, HoldPattern[_ -> Automatic]]テクニカルノート
関連するガイド
-
▪
- パターンマッチング関数 ▪
- リストの要素 ▪
- 規則とパターン ▪
- 離散データと整数データ ▪
- リスト操作 ▪
- 式 ▪
- 式の部分 ▪
- 関数型プログラミング ▪
- 条件文 ▪
- 関数の合成と演算子形式
関連するワークフロー
- ノートブックから表形式データをインポートする
履歴
1988 で導入 (1.0) | 2003 で更新 (5.0) ▪ 2014 (10.0)
テキスト
Wolfram Research (1988), Cases, Wolfram言語関数, https://reference.wolfram.com/language/ref/Cases.html (2014年に更新).
CMS
Wolfram Language. 1988. "Cases." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2014. https://reference.wolfram.com/language/ref/Cases.html.
APA
Wolfram Language. (1988). Cases. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Cases.html
BibTeX
@misc{reference.wolfram_2026_cases, author="Wolfram Research", title="{Cases}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/Cases.html}", note=[Accessed: 10-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_cases, organization={Wolfram Research}, title={Cases}, year={2014}, url={https://reference.wolfram.com/language/ref/Cases.html}, note=[Accessed: 10-August-2026]}