Association[key1val1,key2val2,…] 或 key1val1,key2val2,…
表示键和值之间的关联.
Association 
Association[key1val1,key2val2,…] 或 key1val1,key2val2,…
表示键和值之间的关联.
更多信息
- 与已知键 k 关联 assoc 的值可以使用 assoc[key] 提取. »
- 关联就像一个符号式索引的列表. 与已知 key 关联的值可使用部分指定 Key[key] 提取. 如果 k 是字符串,Key 可以省略.
- 如果 key 不出现在 assoc 中,assoc[key] 生成 Missing["KeyAbsent",key]. »
- 如果 assoc 是一个值为关联的符号,则可通过 assoc[key]=val 来建立或重置 key 与 val 的关系. »
- 典型的列表运算(如 Map、Select 和 Sort)应用于关联中的值,而键保持不变. »
- Association[{key1val1,…}] 给出 <|key1val1,…|>. »
- 如果有多个元素具有相同的键,除最后一个元素外的所有元素都将被丢弃. 相反,Merge 对于重复键则生成值的列表.
- 关联可以使用符号 \[LeftAssociation] 和 \[RightAssociation]输入. 可用
<|
和
|>
键入. - Normal 将 Association 转换为规则列表. »
- KeyValuePattern 可用于表示包括特定元素的关联的模式. »
范例
打开所有单元 关闭所有单元基本范例 (4)
一个关联,其中键 a 与值 x 关联,键 b 与值 y 关联,等等:
<|a -> x, b -> y, c -> z|>%[b]Association[{a -> x, b -> y, c -> z}]assoc = <|a -> x, b -> y, c -> z|>assoc[b] = wassoc<|a -> 1 + 1, b -> 2 + 2, c :> 3 + 3, d :> 4 + 4|>%[c]范围 (17)
构建与提取 (9)
Keys[<|{2, 3} -> x, RGBColor[0.95, 0.43, 0.96] -> y, <|a -> 1, b -> 2|> -> z|>]Append[<|a -> x, b -> y, c -> z|>, d -> w]assoc = Association[Table[i -> i ^ 2, {i, 10000}]];assoc[10000]//EchoTiming缺失的元素用 Missing 表示:
<|a -> x, b -> y, c -> z|>[d]Lookup 允许给出缺省值:
Lookup[<|a -> x, b -> y, c -> z|>, d, q]用 Part 从关联中提取值:
assoc = <|a -> x, b -> {y, z}|>;
assoc[[Key[b]]]assoc[[Key[b], 1]]无论层级,只要是关联,Key[k] 部分指定都适用:
{5, 7, assoc}[[3, Key[b], 2]]assoc = <|3 -> a, 1 -> b, 2 -> c|>;
assoc[[3]]assoc[[Key[3]]]assoc = <|3 -> a, 1 -> b, 2 -> c|>;
assoc[[{2, 3}]]assoc[[{Key[2], Key[3]}]]assoc[[Key[{2, 3}]]]用 Extract 提取值:
assoc = <|a -> 1 + 1, b -> 2 + 2, c :> 3 + 3, d :> 4 + 4|>;
Extract[assoc, Key[c]]assoc = <|a -> 1 + 1, b -> 2 + 2, c :> 3 + 3, d :> 4 + 4|>;
Extract[assoc, Key[c], Hold]Comap[{Keys, Values}, <|a -> 1, b -> 2, c -> 3|>]Transpose[%]模式匹配运算 (8)
MatchQ[<|a -> 1|>, <|_ -> _|>]Replace[<|a -> 1|>, <|a -> x_|> -> x]<|1 -> 2|> /. <|a_ -> b_|> :> {a, b}f[<|1 -> 2, 3 -> 4|>] /. f[<|a_ -> b_, ___|>] :> f[a, b]<|1 -> 2, 2 -> 3, 3 -> 4, 5 -> 6|> /. <|___, 3 -> b_, ___|> :> f[b]Cases[{<|1 -> x|>, <|1 -> x, 2 -> y|>, <|1 -> x, 2 -> y, 3 -> z|>}, <|_, _|>]g[<|k_ -> v_|>] := vg[<|1 -> 2|>]h[<|k_ -> <|k2_ -> v2_|>|>] := {k, k2, v2}h[<|1 -> <|2 -> 3|>|>]KeyValuePattern 允许匹配关联中的任意元素:
MatchQ[<|a -> 1, b -> 2, c -> 3|>, KeyValuePattern[b -> 2]]KeyValuePattern 匹配出现在关联中任意位置的元素:
Replace[<|a -> 1, b -> 2, c -> 3|>, KeyValuePattern[{a -> x_, c -> y_}] :> {x, y}]属性和关系 (9)
Map[f, <|a -> 4, b -> 2, c -> 1, d -> 5|>]Sort[<|a -> 4, b -> 2, c -> 1, d -> 5|>]Select[<|a -> 4, b -> 2, c -> 1, d -> 5|>, # > 3&]Total[<|a -> 4, b -> 2, c -> 1, d -> 5|>]Values 从关联中提取值:
Values[<|a -> x, b -> y, c -> z|>]Keys 从关联中提取键:
Keys[<|a -> x, b -> y, c -> z|>]Normal 将关联变成规则的列表:
Normal[<|a -> x, b -> y, c -> z|>]Position 给出关联中的键:
Position[<|a -> 4, b -> 2, c -> 1, d -> 5|>, 2]<|a -> x, b -> y, c -> z|>[[Key[b]]]如果关联中的键是字符串,不需要显式的 Key 来将其作为部分提取:
<|"a" -> x, "b" -> y, "c" -> z|>[["b"]]<|a -> x, b -> y, c -> z|>[[2]]<|a -> x, a -> xp, b -> y, c -> z, c -> zp|>Join[<|a -> x, b -> y, c -> z|>, <|a -> xp, c -> zp|>]v = w = <|a -> 1, b -> 2|>v[a] = 3{v, w}<||>Length[%]可能存在的问题 (2)
在结构式函数中,Association 仅算作一个层,而不是两个:
Level[<|a -> x, b -> y|>, {1}]Depth[<|a -> x, b -> y|>]Level[{a -> x, b -> y}, {1}]Depth[{a -> x, b -> y}]ReplacePart[<|"x" -> 1, "y" -> 2|>, {0} -> List]Normal[<|"x" -> 1, "y" -> 2|>]相关指南
-
▪
- 关联 ▪
- 计算结构化数据集 ▪
- 自动生成的报告 ▪
- WDF(Wolfram 数据框架) ▪
- 语言概述 ▪
- 设置输入解释器 ▪
- Wolfram 语言语法字符 ▪
- 表达式 ▪
- Wolfram 语言语法 ▪
- 数据库连接 ▪
- 科学数据分析 ▪
- Wolfram 数据知识库
相关的工作流程
- 导入数据 ▪
- 将表格数据导入为可计算数据集 ▪
- 选择数据集中的元素 ▪
- 提取数据集中的列 ▪
- 以网格形式显示输出数据
文本
Wolfram Research (2014),Association,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Association.html (更新于 2016 年).
CMS
Wolfram 语言. 2014. "Association." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2016. https://reference.wolfram.com/language/ref/Association.html.
APA
Wolfram 语言. (2014). Association. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/Association.html 年
BibTeX
@misc{reference.wolfram_2026_association, author="Wolfram Research", title="{Association}", year="2016", howpublished="\url{https://reference.wolfram.com/language/ref/Association.html}", note=[Accessed: 17-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_association, organization={Wolfram Research}, title={Association}, year={2016}, url={https://reference.wolfram.com/language/ref/Association.html}, note=[Accessed: 17-August-2026]}