1

我的问题源于我有一个 DataFrame 值字典(带有兼容的列),我想把vcat它们放在一起。

考虑string函数如何接受任意数量的字符串参数: string("Fish ", "and ", "chips ") == "Fish and chips "(is true)。我有一本字典 myLunch = Dict(:a => "Fish ", :b => "and ", :c => "chips ") ,我想解压缩字典并将其值传递给string就好像它们是参数一样。

string( unpack(myLunch)) == "Fish and chips "

类似地,我的数据可能存储在一个数组中lunch = ["Fish ", "and ", "chips "],我想将数组的内容作为参数传递:

string( unpack(lunch) )

你怎么能这样做?

这是关于元组 StackOverflow 的相关帖子

4

1 回答 1

4

为了清楚起见,首先进行一些重命名:

luncharray = ["Fish ", "and ", "chips "]
lunchdict = Dict(:a => "Fish ", :b => "and ", :c => "chips ")

对于数组,您只需将其拆分为几个参数,就像您可以为元组一样:

string(luncharray...)

字典是键值对,你可以迭代它的值。您可以将任何可迭代对象分解为多个参数:

# don't care about order
       # only need values of Dict
string(values(lunchdict)...)

字典的问题在于它不像数组那样保留顺序。你甚至不能指望广告订单。有可能得到类似的东西and Chips Fish 。因此,我们必须自己对其进行排序。巧合的是,["Fish", "and", "Chips"]已经是有序的,但我们通常不想按单词排序。您的键:a, :b, :c用于指示顺序,因此让我们按此排序。

# care about order
        # value from key   # sort an array of keys in the Dict
string((lunchdict[key] for key in sort(collect(keys(lunchdict))))...)
于 2021-09-09T08:38:19.227 回答