Julia:如何将字典或数组拆包作为多分派函数的传入参数
Julia 实现可迭代对象拆包传参的方案
Julia 中实现所述「将数组/字典值等可迭代对象拆包作为函数参数传入」的功能不需要自定义unpack函数,直接使用内置的飞溅操作符(Splat Operator) ...即可。
1. 数组/向量拆包
直接在数组变量后加...就能把所有元素按顺序展开为独立参数传入函数:
lunch = ["Fish ", "and ", "chips "] string(lunch...) == "Fish and chips " # 执行结果为 true
2. 字典值拆包
字典默认迭代的是(键, 值)元组,因此需要先通过values()取出字典的值集合,再用...拆包:
myLunch = Dict(:a => "Fish ", :b => "and ", :c => "chips ") string(values(myLunch)...)
注意:Julia 原生的
Dict是无序结构,拆包后值的传入顺序不固定。如果需要严格按指定顺序传参,建议使用OrderedCollections包中的OrderedDict存储数据。
3. 拼接DataFrame字典的实践
对应最初的需求,将存储列兼容DataFrame的字典所有值用vcat拼接,直接用以下写法即可:
# df_dict 是存储DataFrame的字典 vcat(values(df_dict)...)
如果需要严格控制拼接顺序,同样建议改用有序字典存储DataFrame。
内容的提问来源于stack exchange,提问作者Owen
相关产品推荐
相关产品推荐

