2015-10-28 4 views
-1

Я хотел бы найти длину массива из массиваКак найти длину массива из массива

Вот мой код

array set partarray 
Set n [array size partarray ] 

Но partarray снова массив с

Partarray = 

Partarray(EIDS)= 1 2 3 

Partarray(NIDS)= 3 2 5 4 3 

Partarray(PIDS)= 2 3 4.... 

Теперь я должен найти длину Partarray (PIDS)?

Так может кто-нибудь помочь мне с этим

Заранее спасибо

ответ

1

Это не совсем массив из массивов. В Tcl это просто способ для моделирования многомерного массива.

Итак, с точки зрения Tcl это всего лишь массив с 3 элементами и каждый элемент, имеющий список связанных с ним элементов.

Если вы намеренно хотели знать, то вы можете пройти через массив и для каждого элемента получить размер массива.

% array set u {} 
% set u(1) 1 
1 
% set u(2) 2 
2 
% array set f {} 
% set f(a) [array get u] 
1 1 2 2 
% array size f 
1 
% array size u 
2 
% 
+0

Я попытался с: массив установлен partarray Set п [размер массива partarray {3}] и ставит $ п, но это не работает. Я очень новичок в tcl, не могли бы вы сообщить мне об ошибке. –

+0

Как уже упоминалось, вы должны закодировать массив, а затем попробовать «размер массива» для каждого элемента. – Dinesh

+1

Вы можете использовать шаблон glob с 'array get', чтобы ограничить ключи, которые возвращаются. Например, 'array get u 12, *'. И используйте 'llength $ Partarray (PIDS)' для длины _list_ в элементе массива. –

Смежные вопросы