List

{e1,e2,}

要素のリストである.

詳細

  • リストは,式のまとまりを表す極めて一般的なオブジェクトである.
  • 属性がListableである関数は,リストに自動的に「縫い込まれ」,リストの要素に個別に機能する.ほとんどの組込み数学関数はListableである.
  • {a,b,c}は,ベクトルを表す.
  • {{a,b},{c,d}}は,行列を表す.
  • ネストしたリストは,テンソルを表すのに使用することができる.
  • リストにNothingが出現した場合は,自動的に削除される.
  • Parallelize[{e1,e2,}]は要素 e1, e2, を並列に計算する. »

予備知識

  • Listは,式の集合を表すのに使われる非常に一般的な構文である.任意の長さあるいは深さのリストが可能である.式List[a,b,c,]は,短縮形{a,b,c,}を使って書いたり表示されたりすることが多い.リストは,明示的なベクトル,行列,テンソル等のオブジェクトを定義せずに,リストを使って(ネストさせることもある)そのような構造を表すWolfram言語において特に重要である.例えば,{a,b,c,}はベクトルを,{{a,b},{c,d}}は行列を表すことができる.
  • 属性Listableを持つ関数は,自動的にリスト上に「縫い込まれ」る.つまり,関数はそれぞれのリスト要素に別々に働く.組込みの数学関数の大部分は,Listableである.
  • Mapが関数をList(あるいはその他の任意の式)の第1レベルにある要素に適用するのに対して,Applyは,List(あるいはその他の任意式)の頭部を新しい頭部で置き換える.
  • SparseArrayを使って,一定(0であることが多い)の「背景」値を持つリスト(あるいはネストしたリスト)を効率的に表現したり計算したりすることができる.SparseArrayNormalを使って,完全な次元のListに拡張することができる.
  • リストの値は,Setを使って,例えば list[[k]]=newValue のように,効率的に変更できる.リストの要素にアクセスしたり,要素を挿入,削除したりするためによく使われる操作には,PartTakeDropExtractInsertDeletePadLeft/PadRightAppend/AppendToPrepend/PrependToが含まれる.
  • 値の平坦なリスト(つまりベクトル)は,ListPlotを使ってプロットすることができ,リストの矩形リストによって与えられる値の配列は,ArrayPlotMatrixPlotListDensityPlot,あるいはその他の関連関数を使ってプロットできる.リストによく適用される,その他の重要で便利な関数には,TotalAccumulateMeanListConvolveが含まれる.
  • Associationは,記号的な指標を付けられたリスト,連想配列,辞書,ハッシュマップ,構文,およびその他のさまざまな強力なデータ構造を一般化したものを提供する.Association(連想)は,キーを値に連想付け,高度に効率的な検索を可能にし,何百万の要素でも更新できることから名付けられた.
  • リストは,Sequenceをそれに適用することで,式の配列に変換することができる.このことは特に,Wolfram言語の関数が引数リストの代りに,引数の平坦な列を取ることが多いために,Sequenceがリストで表現されたデータを簡単に別の関数に結合させることができるという点において便利である.

例題

すべて開くすべて閉じる

  (1)

短縮表記{}FullForm表記のList[]は同等である:

スコープ  (31)

ベクトル,行列,その他の配列の表記  (4)

ベクトルは非リスト要素のリストである:

多くの操作がDotNormのようにベクトルに作用する:

行列は同じ長さのベクトルのリストである:

DotTransposeDetのような行列を伴う多くの操作:

矩形配列は一貫した次元のネストしたリストで表される:

多くの操作がDotFourierのように任意の深さの配列に作用する:

三次元離散フーリエ(Fourier)変換:

矩形ではない不揃いの配列も使うことができる:

多くの構造関数を不揃いの配列に使うことができる:

要素の深さが同じであればPadRightを使って矩形配列を作ることができる:

リストの構築  (5)

Range はさまざまな値からなるリストを作る:

Arrayは関数を使ってリストを作る:

多次元が与えられた場合は,複数の行列やより深い配列が作られる:

Tableは式と反復子を使ってリストを作る:

複数の反復子が与えられた場合には,行列および配列が構築できる:

NestListのような関数的コマンドは結果のリストを作る:

事前に長さが分からないリストを作るときは,SowReapが効率的である:

同じ目が2度続けて出るまでサイコロを振り続ける試み:

リスト可能な関数  (4)

2つのベクトルを足す:

スカラー倍:

ベクトルの正弦:

行列のスカラー倍:

行列にベクトルを加えるとベクトルの要素が行列の行に加えられる:

行列に要素単位で適用された関数:

Listable属性を持つ関数はどれも要素単位でリストに適用される:

Threadedを使って,リスト可能な関数の引数の結合方法を変える:

リスト要素の操作  (5)

Applyはリストの要素を関数の引数にする:

ネストしたリストの場合,レベル1で適用すると f のリストがサブリストに適用される:

Mapは関数をリストの要素に適用する:

ネストしたリストの場合,Mapf をどのレベルにも,複数のレベルにも適用できる:

DoProductSumTableはリスト上で繰り返すことができる:

Partはリストの要素を得るのに使うことができる:

部分リストを指定することで複数の部分を得ることができる:

Spanを使って得ることもできる:

Outerを使って複数のリストの要素に関数を適用する:

リストの結合  (4)

Joinを使って2つのリストを端から端まで結合する:

Spliceを使って1つのリストの要素を別のリストの個々の要素として挿入する:

SequenceApplyの結合を使って同じ効果を出す:

Splice[list]は,Sequenceとは違って他の関数の中では不活性になる:

Insertを使ってリスト全体を単一の要素として他のリスト内に置く:

Appendも同じように動作する:

Prependも同じように動作する:

Flattenを使って内側のリストを削除する:

有限集合としてのリスト  (2)

ComplementUnionIntersectionListを集合として扱う:

SubsetsTuplesIntegerPartitionsを使ってさまざまな組合せ構造を作る:

制御構造としてのリスト  (2)

多くのコマンドが{var, vmin, vmax}を変数の範囲指定として用いる:

多くのコマンドが{v1,v2,}を変数の集合として用いる:

規則のリスト  (2)

多くの解を求めるコマンドの解として規則のリストが返される:

結果の値をReplaceAllで使うことができる:

複数の解が可能な場合,結果は規則のリストのリストになる:

ReplaceAllで規則のリストのリストが使われると,結果のリストが返される:

解が1つしかない場合でも,一貫性のある構造のために余分なListが使われる:

データのリスト  (3)

リストは,その要素が何でもよいので,データの保管に非常に適している:

連続する平方の正弦:

データをプロットする:

二次元の点でサンプルされた関数からのデータ:

データを補間する区分多項式:

InterpolatingFunctionをプロットする:

データを直接プロットする:

特性と関係  (6)

他のすべてのWolfram言語の式と同じように,リストは1から始まる:

InputFormを含むほとんどの形式タイプでは,リストは{}と表示される:

FullFormはリストを他の式と同じように扱い,List[]として表す:

以下のようにするとリストの頭部がListであることは明らかになる:

Sequenceは自動的にリストにスプライスされる:

次は,Sequenceの一般的な動作の特定の場合である:

Nothingは自動的にリストから削除される:

以下の動作はリスト特有である:

SparseArrayはリストを表す:

両者は等しい(Equal):

両者は多くのコマンドで同等に使われることが可能である:

両者はその表記が異なるので同一ではない:

Normal[slist]List表現を返す:

Parallelize[list]list の要素を並列に計算する:

Wolfram Research (1988), List, Wolfram言語関数, https://reference.wolfram.com/language/ref/List.html (2014年に更新).

テキスト

Wolfram Research (1988), List, Wolfram言語関数, https://reference.wolfram.com/language/ref/List.html (2014年に更新).

CMS

Wolfram Language. 1988. "List." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2014. https://reference.wolfram.com/language/ref/List.html.

APA

Wolfram Language. (1988). List. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/List.html

BibTeX

@misc{reference.wolfram_2024_list, author="Wolfram Research", title="{List}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/List.html}", note=[Accessed: 21-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_list, organization={Wolfram Research}, title={List}, year={2014}, url={https://reference.wolfram.com/language/ref/List.html}, note=[Accessed: 21-November-2024 ]}