私はGet[]
次のようなサブスクリプト定義のセミコロンで区切られたシーケンスを含むファイルを読んでいます:
data[1] = {stuff};
data[5] = {otherStuff};
data[99] = {yetMoreStuff};
定義されてi
いる値をプログラムで決定するための最もクリーンな方法は何ですか?data[i]
インデックスのリストはいいでしょう、例えば{1, 5, 99}
。
ハッキーな方法は、可能な値の範囲をループして、どの値にヘッド「データ」がないかを確認することです(たとえばSelect[data/@Range[1,1000],(Not[MatchQ[#,_data]])?]
)が、これは一般的ではないため魅力的ではありません(たとえばdata[dog] = "Max";
、整数添え字要件)、上限を選択できることを前提としています。また、速度が遅くなり、メモリが無駄になります。