在列表中搜索值你好,
我有一個由分隔字符串製成的列表。 該字符串如下所示:(數字)|(名稱)|(數字)|(名稱)|(數字)......等等。 我所做的就是獲取該字符串並通過分隔符(“|”)對其進行解析。 然後,我獲取了所有值的列表,並創建了一個僅包含“名稱”的新列表,並用它創建了新列。 我遇到的問題是當我解析字符串並將其放入每一列時。 因為,並非每行中的每個字符串都以相同的值開頭。 我必須從兩行數據中獲取所有“名稱”。 所以第一行、第三行、第五行等應該是相同的,但它們的字符串結尾的“名稱”是不同的。 隨後,每隔第二、第四、第六等行都以不同的“名稱”開頭(奇數行離開的位置)。 我用來製作列的名稱列表是所有存在的名稱,但我希望能夠將所有數字放在適當的列中。
我用來解析所有數據的腳本的一部分是:
// 獲取所有引腳名稱
列表={};
列表={};
列表2 = {};
// 迭代 :Test_Result 的第一行以獲取引腳名稱
列表=單詞(列(dt4,“Test_Result”)[1],“|”);
list2 = 單詞(列(dt4,"Test_Result")[2], "|");
// 字符串中的第一個值是無用信息,因此將其刪除
列表2 = 刪除(列表2,1);
one_test_result_list = concat(列表,列表2);
// 獲取以第二個值開頭的所有引腳名稱
對於(i = 1, i <= nitems(one_test_result_list)/2, i++,
分配(列表, one_test_result_list[i*2]);
);
我不知道該怎麼做。 因為字符串中每個“名稱”後面的“數字”就是與該名稱對應的值。 因此,如果我看到該名稱,我需要將下一個值放入該名稱的列中。
非常感謝您的幫助!
回复:在列表中搜索值<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />很好地處理提前未知的列名稱。
回复:在列表中搜索值dt =新表( “例子” ,添加行( 4 ) ,
新專欄( “原始數據” ,特點,標稱,
設定值(
{ “1|臉|3|史波克|4|海馬|5” , “1|臉|2|沙特納|3|斯波克|5” ,
“1|臉|2|沙特納|3|斯波克|4|海馬|5” ,
“1|沙特納|3|史波克|4|海馬|5” }
)
)
) ;
列名= dt <<獲取列名(細繩) ;
為了(我= 1 ,我<=行數( dt ) ,我++,
單詞表=字( dt :原始數據[我] , “|” ) ;
為了( k = 2 , k <=尼特姆斯(單詞表) , k = k + 2 ,
一個列=單詞表[ k ] ;
一個_num =單詞表[ k + 1 ] ;
如果( !包含(列名,一個列) ,
dt <<新專欄(一個列,特點,名義上的) ;
插入(列名,一個列) ;
) ;
柱子( dt ,一個列)[我] =一個_num ;
) ;
) ;
回复:在列表中搜索值謝謝克雷格! 這正是我正在尋找的! 它工作完美!
回复:在列表中搜索值也不確定我是否回答了正確的問題。也許這會有所幫助:
dt = New Table( "Untitled",New Column( "dogs"),New Column( "cats"),New Column( "mice"),New Column( "horses"));
load = function({txt},
dt << addrow(1);
list=words(txt,"|");
for(i=1,i
columnName = list; i=i+1;
columnValue = list; i=i+1;
column(dt,columnName)[] = num(columnValue);
)
);
load("mice|3|horses|7");
load("cats|3|mice|9");

第 1 行創建一個模板數據表,並假設您知道所有可能的列名稱。第 2 行開始一個用戶函數,該函數採用單個參數 txt。第 3 行到第 10 行的功能是:向表中添加一行,根據文本創建一個列表,一次瀏覽列表中的兩個項目,獲取名稱,獲取值。第 8 行根據角色名稱創建一列,並使用空 [ ] 將值插入到當前行中。第 11 行和第 12 行是對該函數的調用示例。
回复:在列表中搜索值那很接近了! 我已經有了解析數據的代碼,並創建了一個僅包含名稱的新列表。 我真正想要的是在創建這些新列之後,我必須用所有數字填充它們。 由於每個名稱後面的數字是該名稱的值,因此我只想在列表中搜索該名稱,並將下一個值放入該列中。 有點像這樣:
(假設這些是列):face |沙特納 |斯波克 |海馬
2 | 3 | 4 | 5
由於第一個數字對我來說沒什麼用,所以我忽略它,但名稱後面的數字是我關心的值。 但是,假設缺少其中一個值:
斯特= “1|沙特納|3|史波克|4|海馬|5” ;
我仍然擁有所有原始列,但數據表中的某些行可能缺少中間或開頭的某些值,我希望它搜索列表並跳過缺少的值:
(假設這些是列):face |沙特納 |斯波克 |海馬
| 3 | 4 | 5
我不確定這有多大可能,但並非每一行都以相同的值開頭。 但在找到第一個值後,它應該具有所有值。 所以我真正需要的是找到第一個值屬於哪一列,然後填寫之後的所有列。
謝謝你!
回复:在列表中搜索值不確定我理解你的意思,但聽起來你只是想這樣做?
斯特= “1|‘臉’|2|沙特納|3|斯波克|4|海馬” ;
列表=字(斯特, “|” ) ;
n =尼特姆斯(列表) / 2 ;
指數= 1 :: n ;
埃文斯=指數* 2 ;
名稱=列表[埃文斯] ;
或者可能是關聯數組?