使用 for 迴圈將列表中的每個項目變為空列表你好 ,
如何使用 for 循環建立變數名稱並將其指定為空白列表?
例如:
var_list = {“天”,“今天”,“雨”,“平均值”};
循環遍歷 var_list 將獲得:
天 = {};
今天={};
雨={};
平均值={};
自動化和腳本回覆:使用 for 迴圈將列表中的每個項目變成空列表不要那樣做。我建議將它們創建為關聯數組的鍵,並賦予它們空列表作為值
Names Default To Here(1);
var_list = {"day", "today", "rain", "mean"};
aa = Associative Array(var_list, Repeat({{}}, N Items(var_list)));回覆:使用 for 迴圈將列表中的每個項目變成空列表為什麼不使用 for 迴圈來做到這一點有什麼負面原因?
另外,我想稍後進行一些計算並將值附加到關聯數組。然後將關聯數組轉換為表。下面是我如何做到的例子。 aa 的值正確為 {{}, {}, {"3", "2"}, {"A", "b"}}, 但建立的表僅在 :rain 中有值。我認為這是因為 jmp 預設列資料類型是數字+連續。
1)是否有更好/更快的方法或強制方法將關聯數組轉換為表,而無需定義列資料類型?
keys = aa << get keys;
check= {"col_today", "col_rain"};
col_today = {"A", "b"};
col_rain = {"3","2"};
for (j=1, j<=nitems(check), j++,
for (i=1, i<=nitems(keys), i++,
if(word(-1, check[j], "_") == keys[i],
aa << Insert(keys[i],eval(parse(check[j])));
);
);
);
values1 = aa << get values;
tb = new table();
for (i = 1, i <= nitems(keys), i++,
tb << new column(char(keys[i]), , set values(values1[i]));
)
missing :today value because it is character
回覆:使用 for 迴圈將列表中的每個項目變成空列表嘗試處理動態建立的變數名稱往往會很混亂,並且有資料結構可以幫助處理這種類型的腳本,因此您不必依賴動態變數名稱。
一種選擇是透過 JSON 並讓 JMP 決定資料/建模類型
Names Default To Here(1);
aa = Associative Array();
aa["a"] = {"A", "B"};
aa["b"] = {"1", "2"};
aa["c"] = {1, 2};
dt = JSON To Data Table(As JSON Expr(aa), Guess(Stack(1)));
或者創建所有列和字符,然後轉換那些可以轉換為數字的
回覆:使用 for 迴圈將列表中的每個項目變成空列表我同意 Jarmo 的意見,但我認為這符合您的要求:
Names Default To Here( 1 );
var_list = {"day", "today", "rain", "mean"};
var_list_list = {};
For Each( {var, i}, var_list, Insert Into( var_list_list, Parse( Eval Insert( "^var^ = {};" ) ) ) );
var_list_list;回覆:使用 for 迴圈將列表中的每個項目變成空列表我認為您可能必須添加 Eval List(var_list_list);讓變數初始化一次。
我認為做這樣的事情是一個非常糟糕的想法,我什至不想為此提供選擇,但是仍然......這是一個
看更多...
Names Default To Here(1);
var_list = {"day", "today", "rain", "mean"};
For Each({var, i}, var_list,
Eval(EvalExpr(Assign(Expr(Parse(var)), {})));
);
show(day, today, rain, mean);