2010-12-06 19 views
4

定期的にその要素を更新する必要があるリストがあります。要素にはリストのキーがありません:keyreplace。また、動的に成長します。これは、リスト内の特定のインデックスの要素を更新するための良い方法ですか?より良いアルゴリズムはありますか?Erlangのリストのインデックスにある要素を置き換えます。

List = [1,2,3,4], 
Index = 3, 
NewElement = 5, 
{HeadList, [_|TailList]} = lists:split(Index-1, List), 
[1,2,5,4] = lists:append([HeadList, [NewElement|TailList]]). 

答えて

6

私は、このようにリストを使用してお勧めしません、それは私があなたの問題は、デザイン関連のではなく、きちんとそれを解決するための関連するかもしれないと思わせます。あなたがリストを持っているものについてあなたが説明しているのであれば?

しかし、それが実際に必要な/したい/しなければならないものであれば、あなたがしていることは正しいです。

ランダムアクセス操作にetsテーブルまたはdictを使用することをお勧めします。

+0

私はリストをどのように使っているのか少し分かりましたが、あなたは正しいです。私のランダムアクセス要件は最も重要な要件です。他のもの:いつでも入力された最後の要素(実際にはリストの先頭)にアクセスし、最後に入力された1番目のリストからのトラバーサルを簡単に変更するなど/ dict。私は解決策が{Key、ListElem}タプルを作ることになると信じています。あなたの洞察に感謝します! – MatthewToday

関連する問題