gpt4 book ai didi

wolfram-mathematica - 如何在使用 DeleteCases 时删除额外的 {}

转载 作者:行者123 更新时间:2023-12-01 00:19:22 24 4
gpt4 key购买 nike

(Mathematica 版本:8.0.4)

给定

lst = {{{{1, 2}, 3}, {{4, 5}, 6}}, {{{7, 8, 9, 10, 11}, 13}}};
lst2 = DeleteCases[lst, {x_, y_} /; y > 6, {2}]

给予

{{{{1, 2}, 3}, {{4, 5}, 6}}, {}}

注意最后多余的空 {}

我找不到使用 DeleteCases 在同一命令中删除它的方法(我认为这是为此使用的正确命令),所以我不得不在结果上再次应用它

lst2 = DeleteCases[lst2, {}]

{{{{1, 2}, 3}, {{4, 5}, 6}}}

问题:是否有一种技巧可以在一个命令中执行上述操作而不会在结果中得到空的 {}?以便该命令在所有情况下都是自包含的?

更新 1

回应 Lou 的建议,添加额外的 { }

这是一个我得到不同结果的例子:

lst={{{{1, 2}, 3}, {{4, 5}, 6}}, {{{7, 8, 9, 10, 11}, 13}}}

现在使用 DeleteCases 的额外应用程序删除空 {} 的方法,我们得到

lst2 = DeleteCases[lst, {x_, y_} /; y >= 6, {2}]
{{{{1, 2}, 3}}, {}}

lst2 = DeleteCases[lst2, {}]
{{{{1, 2}, 3}}}

现在使用extra { } 的方法

lst2 = DeleteCases[lst, {{x_, y_}} /; y >= 6]
{{{{1, 2}, 3}, {{4, 5}, 6}}}

这是不一样的,我应该只得到 {{{{1, 2}, 3}}}

谢谢

最佳答案

作为原始结构操作的一部分,似乎没有通用的自动方法来删除由于 DeleteCases 或其他结构转换函数而出现的空列表。它们的移除必须是一个单独的操作。这个问题:

efficient-way-to-remove-empty-lists-from-lists

回答事后如何有效地做到这一点

关于wolfram-mathematica - 如何在使用 DeleteCases 时删除额外的 {},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8666017/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com