DeleteCases[expr,pattern]
删除 expr 中与 pattern 匹配的所有元素.
DeleteCases[expr,pattern,levelspec]
删除 expr 的 levspec 层上与 pattern 匹配的所有部分.
DeleteCases[expr,pattern,levelspec,n]
删除 expr 中与 pattern 匹配的前 n 个部分.
DeleteCases[pattern]
表示 DeleteCases 的运算符形式,可用于表达式.
DeleteCases
DeleteCases[expr,pattern]
删除 expr 中与 pattern 匹配的所有元素.
DeleteCases[expr,pattern,levelspec]
删除 expr 的 levspec 层上与 pattern 匹配的所有部分.
DeleteCases[expr,pattern,levelspec,n]
删除 expr 中与 pattern 匹配的前 n 个部分.
DeleteCases[pattern]
表示 DeleteCases 的运算符形式,可用于表达式.
更多信息和选项
- 当应用于 Association 上时,DeleteCases 根据它们的值删除元素.
- DeleteCases[pattern][expr] 等价于 DeleteCases[expr,pattern].
- 通过选项 Heads->True,您可以使用 DeleteCases 删除头部. 删除一个表达式中特定元素的头部等价于在那个位置把 FlattenAt 应用到该表达式.
- DeleteCases 使用层指定:
-
n 从第 1 层到第 n 层 Infinity 从第 1 层到 Infinity {n} 仅用于第 n 层 {n1,n2} 从第 n1 层 到第 n2 层 - 在 DeleteCases 中,levelspec 的缺省值是 {1}.
- 一个正数层 n,包含 n 指标指定的 expr 中的所有部分.
- 一个负数层 -n,包含深度 n 的 expr 中的所有部分.
- 层数 -1 包含数字、符号和其它不含子集的对象.
- 层数 0 对应整个表达式.
- DeleteCases 在访问根之前,按深度优先的顺序访问 expr 中的部分.
范例
打开所有单元 关闭所有单元基本范例 (5)
DeleteCases[{1, 1, x, 2, 3, y, 9, y}, _Integer]DeleteCases[_Integer][{1, 1, x, 2, 3, y, 9, y}]从 Association 删除元素:
DeleteCases[<|"a" -> 1, "b" -> 2, c -> "3", d -> 4|>, _Integer]DeleteCases 可以访问 Association 中元素的部分:
DeleteCases[<|"a" -> 1, "b" -> 2, c -> {"3", 4}, d -> 4|>, _Integer, {2}]从嵌套的 Association 删除元素:
DeleteCases[<|"a" -> 1, "b" -> <|"3" -> 3, "4" -> "4", "5" -> <|f -> 1|>|>, "c" -> 4|>, _Integer, {2, 3}]范围 (2)
从列表中删除匹配一个 Association 的元素:
DeleteCases[{<|a -> 1|>, <|b -> 2|>}, <|a -> _|>]DeleteCases[{<|a -> 1|>, <|b -> 2|>}, <|_ -> a_ /; EvenQ[a]|>]DeleteCases[{<|a -> 1|>, <|b -> 2|>}, <|a -> _ ? OddQ|>]选项 (1)
应用 (1)
构建一个与 Complement 类似的函数,但保留顺序和重复元素:
UnorderedComplement[list1_List, list2_List] := DeleteCases[list1, Alternatives@@list2]UnorderedComplement[{b, e, d, a, b, c, d}, {b, c}]Complement[{b, e, d, a, b, c, d}, {b, c}]可能存在的问题 (1)
DeleteCases[{1, f[2, 3], 4}, f, {2}, Heads -> True]删除 Association 中的标头去除该项:
DeleteCases[<|"a" -> 1, "b" -> f["2", 3], "c" -> 4|>, f, {2}, Heads -> True]技术笔记
历史
1991年引入 (2.0) | 在以下年份被更新:2014 (10.0)
文本
Wolfram Research (1991),DeleteCases,Wolfram 语言函数,https://reference.wolfram.com/language/ref/DeleteCases.html (更新于 2014 年).
CMS
Wolfram 语言. 1991. "DeleteCases." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2014. https://reference.wolfram.com/language/ref/DeleteCases.html.
APA
Wolfram 语言. (1991). DeleteCases. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/DeleteCases.html 年
BibTeX
@misc{reference.wolfram_2026_deletecases, author="Wolfram Research", title="{DeleteCases}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/DeleteCases.html}", note=[Accessed: 10-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_deletecases, organization={Wolfram Research}, title={DeleteCases}, year={2014}, url={https://reference.wolfram.com/language/ref/DeleteCases.html}, note=[Accessed: 10-September-2026]}