数据类型及其方法
基本数据类型
| 类型 | 图标 | 描述 |
|---|---|---|
| Value | 简单类型,可以是String, Number, DateTime, Bool, Entity | |
| Dict | 键只能为Value类型,值可以是任意数据类型 | |
| List | 元素可以是任意类型 |
Value二级格式
仅出现在公式栏提示中
| 类型 | 图标 |
|---|---|
| String | |
| Number | |
| Datetime | |
| Bool | |
| Entity |
实体二级格式
出现在公式栏提示中
| 类型 | 图标 |
|---|---|
| Agent | |
| Cell | |
| Link |
数据对象方法
| 方法名称 | 功能描述 | 所属数据类型 | 参数1 | 参数2 | 是否修改原对象 |
|---|---|---|---|---|---|
| delete | 删除指定下标的元素, 返回变化后的原对象 | List, Dict | index: Int / key: Value | ||
| remove | 删除指定值, 返回变化后的原对象 | List | value: Any | ||
| merge | 合并字典, 返回变化后的原对象 | Dict | dicts: Dict, Dict, ... | ||
| sub | 根据下标列表获得子字典 | Dict | keys list: [Value/List/Set] | ||
| sub | 根据下标列表获得子列表 | List | indexes list: [Int] | ||
| sub | 根据指定位置和长度获得子字符串 | String | position: Int | length: Int | |
| extend | 合并List, 返回变化后的原对象 | List | lists: List, List, ... | ||
| append | 在List后面插入值, 返回变化后的原对象 | List | value: Any, Any, ... | ||
| insert | 在List指定下标插入值, 返回变化后的原对象 | List | position: Int | value: Any | |
| insert | 向Set插入值, 返回变化后的原对象 | Set | value: Any | ||
| find | 查找List中元素为指定值的第一个下标 | List | value: Any | ||
| join | 用指定连接符,将List中元素连接为一个字符串 | List | seperator: String | ||
| contains | 判断 List 中是否有指定元素 | List | value: Any | ||
| contains | 判断 Dict 中是否有指定Key | Dict | key: Any | ||
| contains | 判断 String 中是否有指定子串 | String | str: String | ||
| split | 用指定字符将字符串切割为List | String | seperator: String | ||
| replace | 指定new替换字符串中所有old, 返回新字符串 | String | old: String | new: String | |
| upper | 将字符串转换为全大写 | String | value: String | ||
| lower | 将字符串转换为全小写 | String | value: String | ||
| sort | 对List排序, 返回排序后的新对象 | List | sort ascending: True | by= None / lambda / function | |
| except | 从一个List中删除所有出现在给定List内的元素,并返回修改后的原对象 | List | exclude value: List | ||
| choice | 从List随机读取一个值 | List | |||
| pop | 从List中弹出指定位置元素, 默认弹出最后一个元素 | List | index: Number | ||
| shuffle | 随机打乱List中的元素顺序 | List | |||
| copy | 复制对象 | any | |||
| add | 时间前进 | DateTime | delta: Number | unit='s':String, can be: "d", "h", "m", "s" | |
| minus | 时间后退 | DateTime | delta: Number | unit='s':String, can be: "d", "h", "m", "s" | |
| delta | 求时间差 | DateTime | t2: DateTime | unit='s':String, can be: "d", "h", "m", "s" | |
| timestamp | 获得时间戳单位秒 | DateTime |
方法使用
-
公式或表达式输入栏,使用格式:
data_object_name.method() -
关于
List_object.sort方法- 由于系统支持第二个参数(排序依据)使用Lambda函数,因此可以对元素为Entity、Dict、或List格式的List进行多级排序,如下案例:
案例
每个学生有三门课成绩,现在你需要对学生排序,规则是先按数学成绩权重0.7和物理成绩权重0.3的总成绩,如果相同再根据生物成绩,由高到低进行排序
-
如果三门成绩是Agent的三个属性,那么你可以尝试通过以下表达式实现对Student Agent个体进行多级排序
Student.Individuals.copy().sort(False, by=lambda x: [x.Math * 0.7 + x.Physics * 0.3, x.Biology]) -
如果学生资料以
{"Name": <String>, "Math": <Number>, "Physics": <Number>, "Biology": <Number>}为元素格式存储在一个名为Students的List变量中,那么你可以尝试以下表达式实现对学生List的多级排序Students.sort(False, by=lambda x: [x["Math"] * 0.7 + x["Physics"] * 0.3, x["Biology"]]) -
如果学生资料以
[Name<String>, Math<Number>, Physics<Number>, Biology<Number>]