如何将这两个字符串列表转换为关键字参数?将两个字符串列表转换为关键字参数
["foo", "bar", "fizz"], ["1", "2", "buzz"]
到
(foo: "1", bar: "2", fizz: "buzz")
如何将这两个字符串列表转换为关键字参数?将两个字符串列表转换为关键字参数
["foo", "bar", "fizz"], ["1", "2", "buzz"]
到
(foo: "1", bar: "2", fizz: "buzz")
你可以散列两个列表:
a = ["foo", "bar", "fizz"]
b = ["1", "2", "buzz"]
res = Hash[a.zip b]
res
是:{"foo"=>"1", "bar"=>"2", "fizz"=>"buzz"}
为什么downvote? – Mureinik
你永远不会知道。 (也许因为你没有改变符号的键,这是微不足道的)。这就是生活。 –
尽管SO确实表示你应该评论一下你为何倒下了。这是社区礼节的一部分。 –
words = ["foo", "bar", "fizz"]
integers = ["1","2","3"]
你可以试试这个:如果你想改变琴弦的符号,并进行散列出来的Hash[words.zip(integers)]
或在新的Ruby中使用'words.zip(整数).to_h'。 –
请注意,OP的整数实际上是字符串。 –
...被转换为符号。 –
,你可以这样做:
strings = ["foo", "bar", "fizz"]
symbols = strings.map(&:to_sym)
integers = ["1","2","3"]
Hash[symbols.zip(integers)]
你会得到{foo: "1", bar: "2", fizz: "buzz"}
根据需要。
你为什么要[做一个哈希](http://en.wiktionary.org/wiki/make_a_hash_of)? –
不像其他答案那么干净或小,但这个工程..并转换为符号。亚伦编码提供了一个很好的速记方式!
w = ["foo", "bar", "fizz"]
w2 = ["1", "2", "buzz"]
c = 0
h = Hash.new { |hash, sym| hash[sym] }
w.each do |x|
h[x.to_sym] = w2[c]
c += 1
end
puts h
你不能那样做。这不是一个对象。或者,你的意思是如何将参数传递给一个方法? – sawa
您查找的结果无效 –
您的意思是:{foo:“1”,bar:“2”,fizz:“buzz”}?或者你想要一个字符串parens:'(foo:“1”,bar:“2”,fizz:“buzz”)'? –