중첩된 목록처음에 그룹화되어 있었기 때문에 어떻게든 중첩된 열 목록을 생성했습니다. 중첩을 제거하여 내가 작업할 수 있는 연속된 열 목록을 만들고 싶습니다.
{{:A, :B, :C}, (:D, :E, :F}} 대신 {:A, :B, :C,
, :E, :F}로 이동하고 싶습니다.
자동화 및 스크립팅Re: 중첩 목록다음은 한 가지 방법으로, 외부 목록 안의 항목이 모두 목록이라고 가정합니다. 그렇지 않을 수도 있다면, 처리하기 위해 코드를 조금 더 추가하면 됩니다.
Names Default to Here( 1 );
this_list = {{:A, :B, :C}, {:D, :E, :F}};
new_list = {};
For Each( {v, i}, this_list,
For Each( {val, idx}, v,
Insert Into( new_list, val )
)
);Re: 중첩 목록개별 목록을 연결하기만 하면 됩니다.
Names Default To Here( 1 );
l1 = {{:A, :B, :C}, {:D, :E, :F}};
l2 = l1[1] || l1[2];
스크립팅 가이드에서 목록 생성 및 조작에 관한 섹션을 읽어보시기 바랍니다.
Re: 중첩 목록이걸 조정해야 했어요. 지금은 작동해요. 고맙습니다.
For Each( {val, idx}, this_list,
Insert Into( new_list, val )
);
Re: 중첩 목록아, 미안합니다. 문자열을 테스트하고 있었는데, 목록에 목록을 삽입하면 실제로 목록의 평가되지 않은 항목이 삽입된다는 것을 잊었습니다. 중첩된 목록 내부에 없는 열이 있으면 누락된 것으로 삽입됩니다. 예를 들어:
Names Default To Here( 1 );
this_list = {{:A, :B, :C}, :D, {:E, :F, :G}};
new_list = {};
For Each( {v, i}, this_list, Insert Into( new_list, v ) );
//{:A, :B, :C, ., :E, :F, :G}
Name Expr()을 사용하면 문제를 해결할 수 있습니다.
Names Default To Here( 1 );
this_list = {{:A, :B, :C}, :D, {:E, :F, :G}};
new_list = {};
For Each( {v, i}, this_list, Insert Into( new_list, Name Expr( v ) ) );
//{:A, :B, :C, :D, :E, :F, :G}Re: 중첩 목록Jim의 솔루션을 기반으로 합니다. 하위 목록이 두 개 이상인 경우:
Names Default To Here( 1 );
l1 = {{:A, :B, :C}, {:D, :E, :F}, {:G, :H, :I, :J}};
l3 = {};
for (i = 1, i <= nitems(l1), i++,
insertinto(l3, l1[i]);
);
print(l3);
{:A, :B, :C,
, :E, :F, :G, :H, :I, :J}