From: Robert Klemme on 9 May 2010 16:32 On 05/09/2010 03:27 PM, Viorel wrote: > On May 9, 12:28 pm, Robert Klemme <shortcut...(a)googlemail.com> wrote: >> On 05/08/2010 09:20 PM, Viorel wrote: >> >> >> >> >> >>> On May 8, 5:28 pm, Robert Klemme <shortcut...(a)googlemail.com> wrote: >>>> On 08.05.2010 12:12, Viorel wrote: >>>>> I have some names like aaxxbbyy where xx is '01'..'10' and yy is also >>>>> '01'..'10'. I think there is a simple, rubyst way of iterating through >>>>> them, and I ask for your help in finding it. Thank you in advance! >>>> I am not sure I understand exactly what you are trying to do. Does this >>>> help? >>>> irb(main):005:0> r = '01' .. '10' >>>> => "01".."10" >>>> irb(main):006:0> r.zip(r){|xx,yy| puts "aa#{xx}bb#{yy}"} >>>> aa01bb01 >>>> aa02bb02 >>>> aa03bb03 >>>> aa04bb04 >>>> aa05bb05 >>>> aa06bb06 >>>> aa07bb07 >>>> aa08bb08 >>>> aa09bb09 >>>> aa10bb10 >>>> => nil >>>> irb(main):007:0> >>> Thank you, Robert! it is a begining, but I need somethink like: >>> aa01bb01 >>> aa01bb02 >>> aa01bb03 >>> aa01bb04 >>> . >>> . >>> . >>> aa02bb01 >>> aa02bb02 >>> aa02bb03 >>> . >>> . >>> aa10bb09 >>> aa10bb10 >>> Can you help? >> Where's the difference? >> >> robert >> >> -- >> remember.guy do |as, often| as.you_can - without endhttp://blog.rubybestpractices.com/ > > The difference is that I have to iterate through yy for a given xx. > xx='01', yy='01'..'10', so I have 100 outputs, not only 10. Yes, now I see it, too. Sorry for my stupidity. :-) You want all combinations. The obvious solution is two nested iterations You could do irb(main):002:0> '01'.upto('03'){|xx| '01'.upto('03') {|yy| puts "aa#{xx}bb#{yy}"}} aa01bb01 aa01bb02 aa01bb03 aa02bb01 aa02bb02 aa02bb03 aa03bb01 aa03bb02 aa03bb03 => "01" irb(main):003:0> or irb(main):001:0> for xx in '01'..'03' irb(main):002:1> for yy in '01'..'03' irb(main):003:2> puts "aa#{xx}bb#{yy}" irb(main):004:2> end irb(main):005:1> end aa01bb01 aa01bb02 aa01bb03 aa02bb01 aa02bb02 aa02bb03 aa03bb01 aa03bb02 aa03bb03 => "01".."03" irb(main):006:0> I picked a small range to not let the number of combinations grow too large. Cheers robert -- remember.guy do |as, often| as.you_can - without end http://blog.rubybestpractices.com/
From: Viorel on 9 May 2010 18:48
Thank you, Robert, that is exactly what I need. You are the best! |