元组tuple的基本操作

1. 两个重要的算子

tuple_gen_const( : : Length, Const : Newtuple)
* 创建一个长度为 Length ,元素为 Const 的元组 Newtuple。
* 例如:
tuple_gen_const (5, 1, Newtuple)  
* Newtuple结果为 [1, 1, 1, 1, 1]
tuple_gen_sequence( : : Start, End, Step : Sequence)
* 创建一个从 Start 开始,以 Step 为步长 的等差元组 Sequence。
* 例如:
tuple_gen_sequence (1, 9, 2, Sequence)
* Sequence结果为 [1, 3, 5, 7, 9]

2. 一些基本操作

t:=[t1,t2] //连接两个元组
i:=|t| //获取元组的长度
v:=t[i] //获取元组中索引为i的元素
t:=[i1:i2] //获取元组中索引从i1到i2的元素
t:=subset(t,i) //选取元组中索引为i的元素
t:=remove(t,i) //移除元组中索引为i的元素
i:=find(t1,t2) //在元组中查找元组t2的位置并返回
t:=uniq(t) //元组中相邻两个元素相同时只保留一个

3. 运算

3.1 算数运算

a1+a2
a1-a2
a1*a2
a1/a2
a1%a2
-a

3.2 位运算

lsh(i1,i2) //逐位左移
rsh(i1,i2) //逐位右移
i1 band i2 //按位与
i1 bxor i2 //按位异或
i1 bor i2  //按位或
bnot i     //按位非

3.3 保留有效数字

a:= 3.1415926
 
*取整
int_a   := int(a)    //取整数部分,结果是3
round_a := round(a)  //将输入元组转换为最接近的整数元组,结果是3
a1 := number(a$'.1f')  //number()是将数字字符串转为数字,结果是3.1
 
*四舍五入,结果是字符串
g0 := a$'.0f'  //保留0位
g1 := a$'.1f'  //保留1位
g2 := a$'.2f'  //保留2位
g3 := a$'.3f'  //保留3位
g4 := a$'.4f'  //保留4位
 
*如果用算子的方式实现,则如下:
tuple_string (a, '.1f', String)  //String等于'3.5'
tuple_number (String, Number)    //Number等于3.5
 
*数字转化为字符串直接加''即可
string_a := a + ''  //结果是'3.456'
 
*保留N个有效数字,结果是字符串
y  := 2018.11
y1 := y$'.1'  //保留1位有效数字,结果是'2e+003'
y2 := y$'.2'  //保留2位有效数字,结果是'2e+003'
y3 := y$'.3'  //保留3位有效数字,结果是'2.02e+003'
y4 := y$'.4'  //保留4位有效数字,结果是'2018'
y5 := y$'.5'  //保留5位有效数字,结果是'2018.1'

3.4 比较操作

t1<t2  //小于
t1>t2  //大于
t1<=t2 //小于等于
t1>=t2 //大于等于
t1>=t2 //大于等于
t1=t2  //等于(判断语句中也是一个等号)
t1#t2  //不等于

3.5 布尔操作

b1 and b2  //逻辑与
b1 xor b2  //逻辑异或
b1 or b2   //逻辑或
not b      //逻辑非

3.6 三角函数

sin(a) //正弦
cos(a) //余弦
tan(a) //正切
asin(a) //反正弦
acos(a) //反余弦
atan(a) //反正切
atan2(a1,a2) //4个象限的反正切
sinh(a) //双曲正弦
cosh(a) //双曲余弦
tanh(a) //双曲正切

3.7 指数函数

exp(a) //元组的指数运算
log(a) //计算a的自然对数
log10(a) //计算以10为底a的对数
pow(a1,a2) //a1的a2次幂
ldexp(a1,a2) //a1 * 2的a2次幂

3.8 数字函数

min(t) //最小元素
max(t) //最大元素
min2(t1,t2) //两个元组里面选小的
max2(t1,t2) //两个元组里面选大的
sum(t) //返回元素所有元素的和
mean(a) //返回平均值
deviation(a) //返回标准差
cumul(a) //计算元组的累计和
median(a) //返回中值
select_rank(a,i) //先对元组排序,然后选择排序后元组中索引号为i的元素
sqrt(a) //平方根
deg(a)  //弧度转角度
rad(a)  //角度转弧度
real(a) //整型转实数型
int(a)  //取整
round(a) //四舍五入得到整数
abs(a)  //绝对值
fabs(a)  //绝对值(浮点数)
ceil(a)  //向上取整
floor(a) //向下取整
fmod(a1,a2) //计算 a1/a2 的余数
sgn(a) //计算元组的正负

3.9 其他函数

sort(t) //升序排列
sort_index(t) //将元组排序并返回索引
inverse(t)  //转置变换
is_number(v) //判断一个值是否为数字
environment(s) //环境变量
ord(a)  //将字符转换成对应的ASCII值
chr(a)  //将ASCII值转换成对应的字符
ords(s)  //将字符串转换成ASCII元组
chrt(i)  //将ASCII元组转换成字符串
rand(a)  //产生随机元组


————————————————
版权声明:本文为CSDN博主「MechMaster」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_38566632/article/details/118969554