列表和字典(
将多个值作为一个值保存:列表按顺序保存值,字典按键查找值。
语法
{a,b,c}
{}
{key:value,key:value,…}
{:}
list[index]
dictionary[key]
CONCAT(a,b,…)
SUBRANGE(list,first,count)
INDEXOF(list,value,from)
CONTAINS(list,value)
| 部分 | 含义 |
|---|---|
| a, b, c | 列表的项:任意表达式,甚至可以是列表和字典。 |
{} |
空列表。 |
| key:value | 字典的条目:每个键及其值。 |
{:} |
空字典。 |
| index | 列表中的哪一项:一个整数,从 0 开始(第一项为 [0])。 |
| key | 字典中的哪个值。 |
CONCAT |
将列表合并为一个(不是列表的值作为一项添加);合并字典;连接字符串。 |
SUBRANGE |
列表中从 first(从 0 开始)起的 count 项;未给出 count 时,一直取到末尾。对于字符串,取其字符。 |
INDEXOF |
value 在列表中第一次出现的位置(从 0 开始;如给出 from,则从该处开始查找),不存在时为 -1;在字符串中,为子字符串第一次出现的位置。 |
CONTAINS |
value 是否为列表的一项、字典的一个键,或字符串中的一个子字符串。 |
结果
一个列表或一个字典;后面加上 [ ] 时,为其中的一个值。
示例
在示例图纸中:
| 表达式 | 结果 |
|---|---|
{10,20,40}[0] |
10 |
{10,20,40}[2] |
40 |
{10,20,40}.COUNT |
3 |
{10,20}+{40} |
{10,20,40} |
{"A4":210,"A3":297}["A3"] |
297 |
{"A4":210,"A3":297}.KEYS |
{"A4","A3"} |
{"A4":210,"A3":297}.VALUES |
{210,297} |
{1:"one",2:"two"}[L/250] |
"two" |
{P1,P2}[1] |
[500,300] |
{10,20,40}.LAST |
40 |
CONCAT({10,20},{40},50) |
{10,20,40,50} |
SUBRANGE({10,20,40,50},1,2) |
{20,40} |
SUBRANGE({10,20,40,50},2) |
{40,50} |
INDEXOF({10,20,40},40) |
2 |
INDEXOF({10,20,40},30) |
-1 |
CONTAINS({"A4":210,"A3":297},"A5") |
FALSE |
CONCAT("Box ",L,"x",W) |
"Box 500x300" |
SUBRANGE("Lid flap",4) |
"flap" |
INDEXOF("Lid flap","flap") |
4 |
说明
将列表或字典保存在变量中,并按名称使用:SIZES={"A4":210,"A3":297},然后 SIZES["A4"]。
- 键可以是数、字符串、位置或 TRUE 和 FALSE。数值键与同一个数匹配,无论其写法如何(
2、2.0、4/2);字符串须完全匹配。同一个键给出两次时,以第一次为准。 - 属性:
.COUNT是项或条目的数量;列表的.FIRST和.LAST是其第一项和最后一项;字典的.KEYS和.VALUES是由其键和值组成的列表,按顺序排列。 - 合并:
+可合并两个列表,也可合并两个字典(对于两者共有的键,以第二个字典的值替换第一个字典的值)。 - 比较:
==逐项比较。 - 索引不是 0 到
.COUNT-1之间的整数,或键不存在时,会出错。如需在这些情况下给出一个值,请使用 SWITCH。 - 列表和字典都是值:它们不会改变。在块中,可用
LIST = LIST + {X}逐步构建。 FOREACH 对列表的每一项或字典的每个键运行一个块。 [x,y](方括号)是一个位置,而不是列表。