2
votes

Ruby équivalent à la chaîne Python ()

Quel est l'équivalent Ruby de l'itérateur de chaîne en python?

data_chained = []
data2 = {}     
data_chained = chain(data_chained, data2)

Comment cela peut-il être fait en Ruby?


3 Réponses :


0
votes

Est-ce ce que vous recherchez?

Hash # merge

Vous l'utilisez comme ci-dessous:

h1 = { "a" => 100, "b" => 200 }
h2 = { "b" => 254, "c" => 300 }
h1.merge(h2)   #=> {"a"=>100, "b"=>254, "c"=>300}
h1.merge(h2){|key, oldval, newval| newval - oldval}
       #=> {"a"=>100, "b"=>54,  "c"=>300}
h1             #=> {"a"=>100, "b"=>200}


0 commentaires

3
votes

Depuis Ruby 2.6: s'il est Enumerable, vous pouvez chaîne it: (exemple tiré de la documentation, chaînage d'une plage à un tableau)

e = Enumerator::Chain.new(1..3, [4, 5]) 
e.to_a #=> [1, 2, 3, 4, 5]
e.size #=> 5


0 commentaires

0
votes

J'ai mal compris le problème, c'est peut-être le même que itertools.chain en python. Cela a fonctionné pour moi ->

Enumerator::Chain.new(data_chained, data2) 


0 commentaires