1. 创建array并赋值给point或prim
2. 读取数组某个item的值
f[]@posA = {0,1,2,3};
float bb = f[]@posA[5];//读取数组要写清楚类型,如: v[] , f[] , f[]
printf('bb= %s\n',bb);//因为posA最多4个数,所以bb调取的是空值,空值返回0
强行创建数组元素并赋值;打印此项的值;打印数组长度值
f[]@posA[8] = 25; //强行创建数组元素并赋值(4至8之间会自动生成数组元素并赋值为0)
printf('@posA[8]= %s\n',f[]@posA[8]);//打印数组的第8号元素的值
printf('len(posA)= %s\n',len(f[]@posA));//打印@posA数组的长度值(多少个数)
打印结果:@posA[8]= 25 ;len(posA)= 9
3. 添加、插入值(append;insert)
创建数组 i[]@b = array(1,2);
添加值
i[]@b = array(1,2);
//在已有数组末端添加新的值
append(@b,6);
push(@b,5); //push()和append()似乎一样
printf('@b push = %s\n',@b);//打印
打印结果:@b push = {1, 2, 6, 5}
插入值
//在数组的0号位置(最前端)插入项,值为9
insert(@b,0,9); //insert()函数 插入一个、数组、或字符串 到 一个数组或字符串
printf('@b insert = %s\n',@b);
打印结果:**@b insert = {9, 1, 2, 6, 5}
4.通过 push()函数添加数组
float values[];
push(values, 3.6);
push(values, 1.9);
float val = 8.4;
push(values, val);
printf("values=%s\n",values);
//数组结果 [3.6, 1.9, 8.4]
5.删除数组(pop ; removevalue)
通过 pop() 函数删除数组最后一个值
float values[] = {2.3, 93, 34, 4.2};
pop(values);
//数组结果 [2.3, 93.0, 34.0]
通过removevalue()函数删除指定值,如果有多个相同的值仅能删除第一个值
float aa[] = {2.3, 93, 34, 4.2, 93.0};
removevalue(aa, 93.0);
//数组结果 [2.3, 34.0, 4.2, 93.0]
6.数组切片
value[ start开始 : end结束 : step步幅 ]
负数代表从倒数第几个开始
空值代表最前或最后
/*
value[ start开始 : end结束 : step步幅 ]
*/
int nums[] = {0, 1, 2, 3, 4, 5};
// -6 -5 -4 -3 -2 -1
int start[] = nums[0:2]; // 0号开始,2号前结束(娶不到2号)
int end[] = nums[-2:]; // {4, 5} 倒数第2个开始 直到尽头
int rev[] = nums[::-1]; //{5,4,3,2,1,0} 反着数,直到最前面
int rev2[] = nums[-1:-4:-1]; //{5,4,3}倒数第1个开始,反着数,倒数第4个前结束(取不到第4个)
int old[] = nums[1::2];//{1,3,5} 1号开始步幅为2,直到结尾
int old2[] = nums[1:len(nums):2];//1开始,第(数组元素的数量值)号结束,步幅为2
<br></br>
7.数组排序
reorder() sort() reverse()
reorder根据指定索引重新排列数组(string类型)的索引顺序.(也就是用指定的索引替代数组的原索引来重新排列数组)
string food[] = {"炸鸡", "可乐", "汉堡"};
int order[] = {1,0,2};
string len[] = reorder(food,order);
int b[] = argsort(len);
int c[] = argsort(food);
printf("%s\n",len); //结果:{可乐, 炸鸡, 汉堡}
printf("%s\n",c); //结果:{1, 2, 0}
printf("%s\n",b); //结果:{0, 2, 1}
sort按值大小重新排列
reverse反向排列
int a[] = {1,2,0,4,3};
i[]@a=sort(a);
i[]@b=reverse(sort(a));
printf("@a=%s\n",@a); //结果:@a={0, 1, 2, 3, 4}
printf("@b=%s\n",@b); //结果:@b={4, 3, 2, 1, 0}
8.将group中point、vertex、prim序号存储进数组
expandpointgroup ; expandvertexgroup ; expandprimgroup
int list[] = expandpointgroup(0,'up'); //以数组形式返回group‘up’中的所有点序号
int list1[] = expandpointgroup(0,'2-4'); //这种写法也支持
int list2[] = expandpointgroup(0,''); //空组会返回所有点序号
9. POP() 从数组中删除最后一个元素并返回该元素
pop(&array[])
pop(&array[], int index)
例:
int MyArray[] = {0,2,4,50,66};
//从数组中拿出最后一个元素 并在数组中删除这个数。
int lastIndex = pop(MyArray); //lastIndex = 66 不指定index,默认就删除并返回最后一个元素。
printf("lastIndex= %d\n",lastIndex);
printf("MyArray= %d\n",MyArray);
//从数组中拿出3号索引的数, 并在数组中删除这个数。
int cusIndex = pop(MyArray, 3); // cusIndex = 50
printf("cusIndex= %d\n",cusIndex);
printf("MyArray= %d\n",MyArray);
打印结果:
lastIndex= 66
MyArray= {0, 2, 4, 50}
cusIndex= 50
MyArray= {0, 2, 4}