gpt4 book ai didi

julia - 如何在 Julia 中将向量(列表)广播到元组中?

转载 作者:行者123 更新时间:2023-12-03 15:48:31 25 4
gpt4 key购买 nike

是否有一个生成器/迭代器函数可以转

a = [1,2]
b = [3,4]

进入 [(1,3),(2,4)]
a = 1
b = [3,4]

进入 [(1,3),(1,4)]使用相同的表达?

是否有类似的方法来创建命名元组,例如 [(a=1,b=3),(a=1,b=4)] ?

最佳答案

您可以使用 Julia 的点语法进行广播:

julia> tuple.(a, b)
2-element Array{Tuple{Int64,Int64},1}:
(1, 3)
(2, 4)
tuple这是一个仅从其参数创建元组的函数。

对于 NamedTuple你可以直接在元组上调用低级构造函数
julia> NamedTuple{(:a, :b)}.(tuple.(a, b))
2-element Array{NamedTuple{(:a, :b),Tuple{Int64,Int64}},1}:
(a = 1, b = 3)
(a = 2, b = 4)

哪里 :a:b是排序的键名,或者等效地,使用匿名函数:
julia> broadcast((a_i, b_i) -> (a=a_i, b=b_i), a, b)
2-element Array{NamedTuple{(:a, :b),Tuple{Int64,Int64}},1}:
(a = 1, b = 3)
(a = 2, b = 4)

希望有帮助!

关于julia - 如何在 Julia 中将向量(列表)广播到元组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61091049/

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