Как я могу превратить эти два списка строк в аргументы ключевых слов?Превращение двух списков строк в аргументы ключевых слов
["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 говорит, что вы должны прокомментировать, почему вы делаете downvote. Это часть любезности сообщества. –
words = ["foo", "bar", "fizz"]
integers = ["1","2","3"]
Вы можете попробовать это: Hash[words.zip(integers)]
Или 'words.zip (целые числа) .to_h' в новом Ruby. –
Обратите внимание, что целые числа 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")'? –