跳到主要内容

操作符和全局函数

全局函数图标

OperatorandGlobalFunction_image1.png

操作符

符号功能
+加法(取正)
-减法(取反)
*乘法
/除法
**乘方
%取模
//整除
==相等
!=不等
<小于
>大于
>=不小于
<=不大于
and逻辑与
or逻辑或
not逻辑非
&位与
|位或
~位非
^位异或
<<位左移
>>位右移
in判断是否属于
->指定数字或字母范围,仅在批量构造字典键时

全局函数明细

类型名称参数1参数2参数3功能详细用法
通用lenvalue: List, Set, Str, Dict返回复杂类型数据的长度
通用rangestart: Number / DateTimeend: Number / DateTimestep=1生成指定范围的list
通用copyvalue: Any复制对象
通用mapfunction: Function / lambdaobject: List/Number, List/Number,...将函数应用于List的每个元素并返回新List1
通用filterfunction: Function / lambdaobject: List/Dict将函数应用于List的每个元素, 将函数返回值为True的位置的元素组合成新的List/Dict2
通用rgbred: Intgreen: Intblue: Int传入三个[0, 255]内的值, 生成RGB十六进制颜色代码字符串
通用hslh: Numbers: Numberl: Number传入HSL的三个值, 生成HSL十六进制颜色代码字符串
通用typevalue: any返回value数据类型的字符串
转换stringvalue: Value任意简单类型转换为String
转换numbervalue: String将字符串转换为Number
转换intvalue: NumberNumber转换为整数(向下)
转换boolvalue: Value简单类型转换为Bool, ""和0为False
转换listempty / value: List /value: Set/ value: Dict转换为List3
转换setempty / value: List /value: Set/ value: Dict转换为Set类似3
转换dict生成空dict, 同类似3
随机randoma: Numberb: Number返回一个符合均匀分布的随机数, 范围[a, b)
随机randinta: Numberb: Number返回一个符合均匀分布的随机整数, 范围[a, b]
随机normalu: Numberv: Number返回一个符合均值为 u,标准差为 v 的正态分布随机数
随机possionu: Number返回一个符合指定均值(u)的泊松分布随机数
随机bernoullip: Number根据概率 p 的伯努利分布返回一个随机数(0 或 1)
随机random_explambda: Number >0根据到达率生成指数分布随机值
数学absvalue: Number取绝对值
数学sqrtvalue: Number取平方根
数学cbrtvalue: Number取立方根
数学expvalue: Number返回以e为底的指数函数 →e^x
数学exp2value: Number返回以2为底,x为指数的幂 →2^x
数学logvalue: Number返回指定值的以e为底数的对数
数学log2value: Number求以2为底的对数
数学log10value: Number求以10为底的对数
数学sinradian: Number正弦,参数为弧度
数学cosradian: Number余弦
数学tanradian: Number正切
数学asinvalue: Number反正弦
数学acosvalue: Number反余弦
数学atanvalue: Number反正切, (-PI/2,PI/2)
数学atan2y: Numberx: Number返回与X轴正向夹角(-PI, PI)
数学sinhvalue: Number双曲正弦
数学coshvalue: Number双曲余弦
数学tanhvalue: Number双曲正切
数学asinhvalue: Number反双曲正弦
数学acoshvalue: Number反双曲余弦
数学atanhvalue: Number反双曲正切
数学factorialn: Int返回非负整数的阶乘n!
数学truncvalue: Number移除小数部分
数学ceilvalue: Number向上取整
数学floorvalue: Number向下取整
数学roundvalue: Numberp=0四舍五入保留p位小数
数学isnanvalue: Number判断数值是否为nan
数学isinfvalue: Number判断数值是否为inf(无穷,正负inf均为True)
统计maxvalue list: [Number] / [Number]/value set: {Number}取多个Number或一个List中的最大值
统计minvalue list: [Number] / [Number]/value set: {Number}取最小值
统计meanvalue list: [Number] / [Number]/value set: {Number}取均值
统计medianvalue list: [Number] / [Number]/value set: {Number}取中位数
统计sumvalue list: [Number] / [Number]/value set: {Number}求和
统计prodvalue list: [Number] / [Number]/value set: {Number}累乘
统计varvalue list: [Number] / [Number]/value set: {Number}方差
统计stdvalue list: [Number] / [Number]/value set: {Number}标准差
内置NearestDistanceentity1: Agent / Cell / coordinate1: [Number, Number]entity2: Agent / Cell / coordinate2: [Number, Number](space: Cell)考虑环绕与否的Cell上的最近距离4
内置AngleTowardsentity1: Agent / Cell / coordinate1: [Number, Number]entity2: Agent / Cell / coordinate2: [Number, Number](space: Cell)Cell上的基于最近距离的角度类似4
局部构造ProductJoinlists: List, List, ...sep = "-"计算多个列表的笛卡尔积,并将每个元素用分隔符连接为字符串,仅用于批量构造字典键时
构造defaultdictvalue: Any生成默认值为value的dict
构造datetimeyear, month, day, hour=0, minute=0, second=0以指定年月日时分秒生成日期值,除second外的参数将丢弃小数部分
构造datetimevalue: String(yyyy-mm-ddTHH:MM:SS)以ISO 8601 时间格式生成日期
构造fromtimestampts: Number从timestamp生成日期

详细用法补充说明

  1. map
  • 将函数逐一作用于List的每个元素,最终返回一个全新List

  • 第一个参数为函数,可以是函数名,也可以是由lambda关键字定义的匿名函数。该函数需要的参数数量决定了后续被处理目标的数量

  • 后面的所有参数均为待处理目标,可以是List类型,也可以是其它数据类型

    • 如果多个待处理目标都是List格式,系统按最短的处理
    • 如果待处理目标中有 Value,系统将按“广播”方式处理,即始终采用该值并按最短List长度处理
    • 如果待处理目标中有Dict,系统将按其所有的key组成的List进行处理,但不保证顺序
例子
  • map(abs, [1,-2,3])的返回值为[1,2,3]

  • map(lambda x,y: 2*x + y, [1,2,3], 4)将返回[6,8,10]

  1. filter
  • 将函数应用于 List 的每个元素或 Dict 的每个 Key,将函数返回值为True的位置上的元素组合成新的 List 或 Dict
  • 第一个参数为函数,可以是函数名也可以是由lambda关键字定义的匿名函数,该函数返回值应为Bool格式
  • 第二个参数为待处理目标,如果是List格式,则最终返回值也为List格式,如果是Dict格式,则最终返回值也为Dict格式
例子
  • filter(lambda x: x>0, [1,-2,3])的返回值为[1,3]

  • filter(lambda s: s.contains("x"), {"x1":20, "x2":30,"y1":40})将返回{"x1":20, "x2":30}

  1. list
  • 参数是List时为复制
  • 参数是Set时取所有元素生成List
  • 参数是Dict时取所有Key生成List
  • 无参数生成空List
  1. NearestDistance
  • 支持考虑环绕下计算任意两实体(AgentCell)或坐标点的最近距离,包括实体与实体、坐标与实体、坐标与坐标
  • 如果前2个参数均为坐标,则需要为第3个参数传递Cell实体以指定所在空间
  1. 关于inf
  • 表达式1/0将返回inf,而不是报错
  • 表达式isinf(number("-inf"))isinf(number("inf"))都将返回True
  • 表达式number("inf") > 0number("inf") > number("-inf")将返回True