From: stefan heinrich Date: 2013-07-11T16:34:26+09:00 Subject: Re: create variables depending on counter Hi, > Why are the elements in the arrays not numbers? It looks like you > rather > want to work with numbers (Fixnum) here. It's not only numbers. In some cases there are strings. > Can you show us what's in data? Please make sure to present complete > examples, otherwise it's difficult to come up with answers - and to > follow > the discussion as well. ok sorry... my code to read out the tablewidget and create the array. array = Array.new for i in 0..rowCount - 1 tmp = Array.new tmp << @tableWidget.item(i, 1).text.to_a tmp << @tableWidget.item(i, 0).text.to_a tmp = tmp[0] + tmp[1] array << tmp end array.group_by {|s,i| s} array= array.group_by {|s,i| s}.each {|k,v| v.map! {|s,i| i}} The 2d array looks like this after grouping {"I OFF"=>["a8", "1e"], "E OFF"=>["98", "a0"], "Emphasized ON"=>["db"], "I ON"=>["99"]} It seems like after using grouping by it is not an array anymore. I use array[0] and get a nil. How can I take only the values. I would like to combine all combinations only I with E and E with I. It is not working. > irb(main):001:0> h = {"I OFF"=>["34"], "E OFF"=>["92", "94"], "E > ON"=>["7f"], "I ON"=>["d9", "cf"]} > => {"I OFF"=>["34"], "E OFF"=>["92", "94"], "E ON"=>["7f"], "I > ON"=>["d9", > "cf"]} > irb(main):002:0> h.select {|k,| /^I/ =~ k} > => {"I OFF"=>["34"], "I ON"=>["d9", "cf"]} > irb(main):003:0> h.select {|k,| /^E/ =~ k} > => {"E OFF"=>["92", "94"], "E ON"=>["7f"]} I have to try it now :D. Thanks -- Posted via http://www.ruby-forum.com/.