如何迭代 Julia NamedTuple 中的名称和值?
How to iterate over names and values in Julia NamedTuple?
例如如果我有:
t = (
a = 1:5,
b = 2:6,
c = 3:7,
)
我想:
(
a = 15,
b = 20,
c = 25,
)
完成此操作的惯用方法是什么?
我不知道如何从1:5
传递到15
,但如果你允许我发明这样的函数,那么,你可以这样做:
julia> NamedTuple(k=>length(v)*(first(v)+2) for (k,v) in pairs(t))
(a = 15, b = 20, c = 25)
你也可以使用旧的 map
:
julia> map(x -> length(x) * (first(x) + 2), t)
(a = 15, b = 20, c = 25)
我猜你想要
julia> map(sum, t)
(a = 15, b = 20, c = 25)
例如如果我有:
t = (
a = 1:5,
b = 2:6,
c = 3:7,
)
我想:
(
a = 15,
b = 20,
c = 25,
)
完成此操作的惯用方法是什么?
我不知道如何从1:5
传递到15
,但如果你允许我发明这样的函数,那么,你可以这样做:
julia> NamedTuple(k=>length(v)*(first(v)+2) for (k,v) in pairs(t))
(a = 15, b = 20, c = 25)
你也可以使用旧的 map
:
julia> map(x -> length(x) * (first(x) + 2), t)
(a = 15, b = 20, c = 25)
我猜你想要
julia> map(sum, t)
(a = 15, b = 20, c = 25)