Pick

Pick[list,sel]

从列表 list 中选取符合条件的元素,其对应于 sel 中的元素为 True.

Pick[list,sel,patt]

从列表 list 中选取符合条件的元素,其对应于 sel 中的元素匹配 patt.

更多信息

  • sel 可以是任意长度的嵌套列表.
  • Pick[list,sel,patt] 选取 list[[i1,i2,]] 中的元素,其对应于 sel[[i1,i2,]] 中的元素匹配 patt.
  • 根据嵌套列表 sel 中元素匹配 patt 的顺序,Pick 可能返回一个不规则的列表.
  • listsel 中的头部不一定是 List.
  • PickSparseArray 对象起作用.
  • Parallelize[Pick[list,sel]] 在所有子核上并行计算 Pick[list,sel]. »

范例

打开所有单元关闭所有单元

基本范例  (2)

选取元素,其相应选择列表中出现1:

从一个二维列表中选取元素:

范围  (4)

把对应于选择器列表中 True 的元素挑选出来:

挑出和某个模式相匹配的元素:

SparseArray 来选则参数:

SparseArray 中选取元素:

推广和延伸  (3)

数据不一定是列表:

选择器参数也不必是列表:

将字符串转换成字符列表以选取特定字符:

属性和关系  (2)

Pick[list,sel,patt] 中的比较是结构上的比较,和标头无关:

f[b] 被选中,因为 sel3,1 元素和 patt 匹配:

如果存在,list 中相应的元素及其标头会被选出:

注意 sel2,1 元素也和 patt 匹配:

但是,没有从 list 中挑出相应的元素:

并行计算 Pick

可能存在的问题  (4)

选择器 列表必须具有和数据相同的长度和结构:

Pick 中允许有原子型表达式:

这是因为包括空元素在内的所有元素都会被检测:

如果有原子型参数,却没有被完全取出,则返回Sequence[]

这同样适用于第二个参数:

在第三个参变量中使用 Except[c] 可能导致不期望的结果:

返回整个表达式是因为整个选择参数匹配模式:

使用 Except[c,p] 限制模式为选择参数的元素:

在选择器参数中使用非原子型表达式可能会导致意想不到的结果:

预先进行检测使得列表中只含有 TrueFalse 以避免出现结构上的问题:

Wolfram Research (2004),Pick,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Pick.html.

文本

Wolfram Research (2004),Pick,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Pick.html.

CMS

Wolfram 语言. 2004. "Pick." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/Pick.html.

APA

Wolfram 语言. (2004). Pick. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/Pick.html 年

BibTeX

@misc{reference.wolfram_2024_pick, author="Wolfram Research", title="{Pick}", year="2004", howpublished="\url{https://reference.wolfram.com/language/ref/Pick.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_pick, organization={Wolfram Research}, title={Pick}, year={2004}, url={https://reference.wolfram.com/language/ref/Pick.html}, note=[Accessed: 22-November-2024 ]}