如何按索引从 J 中的列表中删除元素?
How to remove an element from a list in J by index?
我想出的相当冗长的分支是
({. , (>:@[ }. ]))
例如,
3 ({. , (>:@[ }. ])) 0 1 2 3 4 5
0 1 2 4 5
效果很好,但有没有更惯用的方法?在 J 中执行此操作的常用方法是什么?
对,J路就是用三级拳:
(<<<5) { i.10
0 1 2 3 4 6 7 8 9
(<<<1 3) { i.10
0 2 4 5 6 7 8 9
这是dictionary for {
中的一个小笔记:
Note that the result in the very last dyadic example, that is, (<<<_1){m , is all except the last item.
还有 Learning J: Chapter 6 - Indexing: 6.2.5 Excluding Things 中的更多内容。
另一种方法是使用 #
的一元和二元形式(Tally 和 Copy)。 Copy 删除项目的这个习语是我经常使用的。
hook(i. i.@#)
使用Tally(monadic#)和monadic and dyadici.
(Integers and Index of)来生成过滤字符串:
2 (i. i.@#) 'abcde'
1 1 0 1 1
复制(二元#)用于省略适当的项目。
2 ((i. i.@#) # ]) 0 1 2 3 4 5
0 1 3 4 5
2 ((i. i.@#) # ]) 'abcde'
abde
我想出的相当冗长的分支是
({. , (>:@[ }. ]))
例如,
3 ({. , (>:@[ }. ])) 0 1 2 3 4 5
0 1 2 4 5
效果很好,但有没有更惯用的方法?在 J 中执行此操作的常用方法是什么?
对,J路就是用三级拳:
(<<<5) { i.10
0 1 2 3 4 6 7 8 9
(<<<1 3) { i.10
0 2 4 5 6 7 8 9
这是dictionary for {
中的一个小笔记:
Note that the result in the very last dyadic example, that is, (<<<_1){m , is all except the last item.
还有 Learning J: Chapter 6 - Indexing: 6.2.5 Excluding Things 中的更多内容。
另一种方法是使用 #
的一元和二元形式(Tally 和 Copy)。 Copy 删除项目的这个习语是我经常使用的。
hook(i. i.@#)
使用Tally(monadic#)和monadic and dyadici.
(Integers and Index of)来生成过滤字符串:
2 (i. i.@#) 'abcde'
1 1 0 1 1
复制(二元#)用于省略适当的项目。
2 ((i. i.@#) # ]) 0 1 2 3 4 5
0 1 3 4 5
2 ((i. i.@#) # ]) 'abcde'
abde