gpt4 book ai didi

j - 将盒装数组转换为普通数组?

转载 作者:行者123 更新时间:2023-12-02 15:46:42 25 4
gpt4 key购买 nike

假设我有一个像这样的盒装数组;

┌─┬─┬─┐
│1│2│3│
└─┴─┴─┘

我如何将它转换为普通数组,例如 1 2 3

最佳答案

您的示例不够清晰,无法准确说明高维数组上需要的行为是什么。因此会有两种解决方案,这是在这种情况下最常见的行为。

第一个解决方案是使用内置的 monadic 动词 raze ;,就这样

  ]a=.<"(0) 1+i.3
+-+-+-+
|1|2|3|
+-+-+-+
;a
1 2 3

非常简单。但是,需要注意的是 raze 具有等级 _,并且它总是会产生一个列表,也就是说,它还会展平您的数组:

  ]a=.<"(0) 1+i.2 3
+-+-+-+
|1|2|3|
+-+-+-+
|4|5|6|
+-+-+-+
;a
1 2 3 4 5 6

如果你不想要这种行为,你总是可以使用 rank连词 ":

  ;"1 a
1 2 3
4 5 6

或者,您可能还想保留数组的原始形状,在这种情况下,一元动词 open > 可能是您想要的:

  ]a=.<"(0) 1+i.3
+-+-+-+
|1|2|3|
+-+-+-+
>a
1 2 3
]a=.<"(0) 1+i.2 3
+-+-+-+
|1|2|3|
+-+-+-+
|4|5|6|
+-+-+-+
>a
1 2 3
4 5 6

最后,您应该知道没有必要创建一个未装箱值的数组来对它们进行操作,因为创建这个数组可能会导致不需要的行为(尤其是填充):

  ]a=.1 2;3 4 5
+---+-----+
|1 2|3 4 5|
+---+-----+
>a
1 2 0
3 4 5

假设我想将 1 添加到 a 框内的每个原子。打开 a 是不行的,因为这会创建一个额外的元素 0 ,它是填充所需的,如果我之后重新装箱列表,它不会被删除

  <"1>a
+-----+-----+
|1 2 0|3 4 5|
+-----+-----+
a -: <"1>a
0

相反,我可以使用连词 under (dual) 修改我的动词“加 1”来处理盒子&.

  a=.1 2;3 4 5
1&+&.>a
+---+-----+
|2 3|4 5 6|
+---+-----+

请注意,没有额外的填充!

关于j - 将盒装数组转换为普通数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73939695/

25 4 0
文章推荐: awk - 如何使用 awk 或 sed 合并来自两个文件的匹配内容
文章推荐: symfony - OR 关系中的多个 Guard 身份验证器
文章推荐: javascript - 如何将 URL 作为 数据中的变量传递?