Part
expr[[i]] 或 Part[expr,i]
给出 expr 的第 i 个元素.
expr[[-i]]
从末端开始统计.
expr[[i,j,…]] 或 Part[expr,i,j,…]
等价于 expr[[i]][[j]]….
expr[[{i1,i2,…}]]
给出 expr 的第 i1、i2、……个元素组成的列表.
expr[[m;;n]]
给出从第 m 到第 n 个的元素.
expr[[m;;n;;s]]
给出从第 m 到第 n 个的元素,步长为 s.
expr[["key"]]
给出关联 expr 中与 "key" 相关联的值.
expr[[Key[k]]]
给出关联 expr 中与任意键 k 相关联的值.
更多信息
- 可以用类似 t[[spec]]=value 的赋值来修改表达式中的任意元素或元素序列. »
- 一个表达式的 part 0 是它的标头. »
- 常见的元素范围指定包括:
-
expr[[m;;]] 从第 m 个元素到结尾 expr[[;;n]] 从开始到第 n 个元素 expr[[;;,j]] 第 j 列 expr[[m1;;n1,m2;;n2]] 子矩阵 - 当 expr 是一个列表,expr[[{i1,i2,…}]] 给出子列表. 通常情况下, expr 的标头被应用到子列表上. »
- 可以从 expr[[list1,list2,…]] 中得到一个嵌套的子列表. 每个子列表都有一个指针.
- 如果有任何 listi 是 All 或 ;;,则包含该层的所有元素组成的列表. »
- 注意在 Part 中使用的列表和在 Extract、MapAt 和 Position 中的函数是不同.
- 如果 expr 是一个 SparseArray 对象或结构化数组,如 QuantityArray 或 SymmetrizedArray,expr[[…]] 给出相应普通数组中的部分. »
- 格式 expr[["key"]] 可用于从键值是字符串的相关性中提取数值. expr[[Key[k]]] 可用于提取具有任意键值的数值.
- "key" 和 Key[k] 可以出现在部分指定的任何位置.
- 在 StandardForm 和 InputForm 中,expr[[spec]] 可以输出为 expr〚spec〛.
- 〚 和 〛 可以输入为 [[ 和 ]] 或 \[LeftDoubleBracket]和 \[RightDoubleBracket].
- 在 StandardForm 中,expr[[spec]] 可以输入为 expr[[spec]] 或 expr〚spec〛.
背景
- Part 是一个关于结构的函数,它给出一个表达式指定指标的分部. 表达式 Part[expr,i] 通常用简化语法表示为 expr[[i]] 或 expr〚i〛 的形式. Part 可被用于挑出列表的分部、分部的序列、矩阵中的元素、矩阵的行和列等等. Part 可通过 Set 对表达式的分部赋值,比如 list[[k]]=newValue.
- 虽然 Part 最常见是用在列表中,但其实它适用于任何类型的表达式. 当使用 Part 时,可以用索引、索引的列表、 Span 表达式或 All 来指定表达式的分部.
- 实现 Part 的一些常见特例情形的有用的函数包括 First、Last、Take、Drop、Rest 和 Most. Position 可被用于在表达式中找出指定内容出现的位置. Extract 是一个更专门的函数,它会提取出一个表达式中由列表指定的位置上的分部,而类似的函数 Delete 可以从指定位置移除元素.
- 有少量函数,其包含的分部不能用 Part 或相关函数访问或分割为子表达式. 最常见的例子是 Complex 和 Rational,举例来说 Complex[1,2] 是像 1+2 这样的数的内部表示而 Rational[1,2] 是像 1/2 这样的数的内部表示. 有这样性质的函数被称为是原子的,当它们被 AtomQ 作用时返回 True.
范例
打开所有单元关闭所有单元基本范例 (6)
范围 (23)
单级指定 (7)
Association 对象的第一个部分:
多层指定 (7)
混用基于 Key 和通过数字索引进行提取的方式:
对于 SparseArray 对象,Part 给出对应的普通数组中的元素:
对于结构化数组,Part 给出对应的普通数组中的元素:
QuantityArray 中的元素为带有单位的 Quantity 对象:
赋值 (5)
输入格式 (4)
按 FullForm 格式输入:
应用 (6)
属性和关系 (10)
Part[expr,{}] 给出 Head[expr][]:
键为字符串时,Key["key"] 与 "key" 等价:
Part[expr] 给出 expr:
对元素 0 赋值实际上是 Apply 的另一种形式:
用 @@ (Apply) 执行同样的操作:
Part[expr,m;;n] 实际上等价于 Take[expr,{m,n}]:
同样,Part[expr,m;;n;;s] 实际上等价于 Take[expr,{m,n,s}]:
Part[expr,i,j,…] 实际上等价于 Extract[expr,{i,j,…}]:
Part 可提取方阵:
Extract 可返回任意位置上的元素序列:
两种解释之间的关系为 InversePermutation:
可能存在的问题 (5)
Position 并不返回形式上的子列表指定,该指定可以通过 Part 快速使用:
Extract 按 Position 返回的内容指定子列表:
使用 Unevaluated 允许共享变量部分的特殊代码可以看见变量:
文本
Wolfram Research (1988),Part,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Part.html (更新于 2014 年).
CMS
Wolfram 语言. 1988. "Part." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2014. https://reference.wolfram.com/language/ref/Part.html.
APA
Wolfram 语言. (1988). Part. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/Part.html 年