Forum: Ruby Multidimensional hash - get all not blank keys

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Franz M. (Guest)
on 2009-02-15 13:46
Hello.

I have this Hash.

result={"1"=>{"6"=>"",
        "7"=>"",
        "8"=>"",
        "1"=>"Value1",
        "2"=>"",
        "3"=>"Value2",
        "4"=>"",
        "5"=>""},
      "2"=>{"6"=>"",
        "7"=>"",
        "8"=>"Value3",
        "1"=>"",
        "2"=>"",
        "3"=>"",
        "4"=>"",
        "5"=>""},
      "3"=>{"6"=>"",
        "7"=>"",
        "8"=>"",
        "1"=>"",
        "2"=>"",
        "3"=>"",
        "4"=>"",
        "5"=>""},
      "4"=>{"6"=>"",
        "7"=>"",
        "8"=>"Value4",
        "1"=>"",
        "2"=>"Value5",
        "3"=>"",
        "4"=>"",
        "5"=>""}
}


Is it possible to get all keys with a the value.
1,[1 => Value1]
1,[3 => Value2]
2,[8 => Value3]
4,[8 => Value4]
4,[2 => Value5]

thanks
michael
Andrew T. (Guest)
on 2009-02-15 14:14
(Received via mailing list)
On Sun, Feb 15, 2009 at 1:44 PM, Michael .. 
<removed_email_address@domain.invalid> wrote:

>        "4"=>"",
>        "7"=>"",
>        "2"=>"Value5",
> 4,[8 => Value4]
> 4,[2 => Value5]
>
> thanks
> michael
> --
> Posted via http://www.ruby-forum.com/.
>

=> result.each do |k,v| puts "#{k} = #{v.reject{|k2,v2| v2 ==
''}.inspect}"
end
1 = {"1"=>"Value1", "3"=>"Value2"}
2 = {"8"=>"Value3"}
3 = {}
4 = {"8"=>"Value4", "2"=>"Value5"}

You should be able to take that and massage it into what you need.

Andrew T.
http://ramblingsonrails.com
http://www.linkedin.com/in/andrewtimberlake

"I have never let my schooling interfere with my education" - Mark Twain
Pascal J. Bourguignon (Guest)
on 2009-02-15 14:21
(Received via mailing list)
"Michael .." <removed_email_address@domain.invalid> writes:
> I have this Hash.
>
> result={"1"=>{"6"=>"",
>         "7"=>"",
>         "8"=>"",
>         "1"=>"Value1",
>         "2"=>"",
>         "3"=>"Value2",
> [...]
> Is it possible to get all keys with a the value.

Yes, it is possible.




Oh! Perhaps you meant "How?"?  Well perhaps you don't see them because
they're behind your eyes, but you've got a few billion interconnected
neurons inside your skull.  They're called a "brain".  So normally,
you should be able to switch it "on", start to think, and it should
help you to program a function to "get all keys with a the value".
Try it, you'll be pleased!
David A. Black (Guest)
on 2009-02-15 14:29
(Received via mailing list)
On Sun, 15 Feb 2009, Pascal J. Bourguignon wrote:

>> Is it possible to get all keys with a the value.
> help you to program a function to "get all keys with a the value".
> Try it, you'll be pleased!

Please don't post messages like this to this list. There's no benefit
to anyone.


David

--
David A. Black / Ruby Power and Light, LLC
Ruby/Rails consulting & training: http://www.rubypal.com
Coming in 2009: The Well-Grounded Rubyist (http://manning.com/black2)

http://www.wishsight.com => Independent, social wishlist management!
Pascal J. Bourguignon (Guest)
on 2009-02-15 14:42
(Received via mailing list)
"David A. Black" <removed_email_address@domain.invalid> writes:

>>>         "3"=>"Value2",
>> neurons inside your skull.  They're called a "brain".  So normally,
>> you should be able to switch it "on", start to think, and it should
>> help you to program a function to "get all keys with a the value".
>> Try it, you'll be pleased!
>
> Please don't post messages like this to this list. There's no benefit
> to anyone.

Hopefully, it should be of benefit to the OP.  He should really start
to think by himself, and start to learn how to find the information he
lacks on the web.  There is the whole Ruby language reference
available on the web, there is ri, as soon as he knows what a hash
table is, he should be able to activate a couple of neurons and find
out how to do what he wanted to do.
David A. Black (Guest)
on 2009-02-15 14:49
(Received via mailing list)
On Sun, 15 Feb 2009, Pascal J. Bourguignon wrote:

>>>>         "1"=>"Value1",
>>> Oh! Perhaps you meant "How?"?  Well perhaps you don't see them because
>>> they're behind your eyes, but you've got a few billion interconnected
>>> neurons inside your skull.  They're called a "brain".  So normally,
>>> you should be able to switch it "on", start to think, and it should
>>> help you to program a function to "get all keys with a the value".
>>> Try it, you'll be pleased!
>>
>> Please don't post messages like this to this list. There's no benefit
>> to anyone.
>
> Hopefully, it should be of benefit to the OP.

It won't be, and can't be. There's no information in it and no advice,
just a string of snide, smug insults. Please keep a civil tone on this
list. Thanks.


David

--
David A. Black / Ruby Power and Light, LLC
Ruby/Rails consulting & training: http://www.rubypal.com
Coming in 2009: The Well-Grounded Rubyist (http://manning.com/black2)

http://www.wishsight.com => Independent, social wishlist management!
Pascal J. Bourguignon (Guest)
on 2009-02-15 16:55
(Received via mailing list)
"David A. Black" <removed_email_address@domain.invalid> writes:

>>>>>         "7"=>"",
>>>>
>>
>> Hopefully, it should be of benefit to the OP.
>
> It won't be, and can't be. There's no information in it and no advice,
> just a string of snide, smug insults. Please keep a civil tone on this
> list. Thanks.

You are much more insulting than I. You are assuming he doesn't know
how to do it, how to search and program the solution by himself.

I'm only saying he's lazy.
Julian L. (Guest)
on 2009-02-15 17:03
(Received via mailing list)
I agree. People have a tendency to not try. They come wanting answers
without hving thought about it themselves.

Blog: http://random8.zenunit.com/
Learn rails: http://sensei.zenunit.com/

On 16/02/2009, at 1:53 AM, removed_email_address@domain.invalid (Pascal J.
Tim H. (Guest)
on 2009-02-15 17:36
(Received via mailing list)
Julian L. wrote:
> I agree. People have a tendency to not try. They come wanting answers
> without hving thought about it themselves.

I agree as well. However, I think it's possible to be helpful short of
simply supplying the answer.

I'm speaking as a long-time jerk who struggles every day to not be
sarcastic and mean in public forums. I know, intellectually at least,
that it's never appropriate to be rude or to judge somebody based on a
single post. I don't always succeed but I try.

The ideal answer to a question like the O.P.'s is helpful, positive, and
  correct. For example, answers like "Consider using the <this  method>
in <this class>." Or write a prose description of an algorithm. Point to
information sources. "You can use ri to get more information about..."
Or "Here's a blog post that might help."

If I can't be helpful, positive, and give a correct answer, I keep my
hands off the keyboard and wait for somebody else who can.
William J. (Guest)
on 2009-02-15 22:30
(Received via mailing list)
David A. Black wrote:

> Please don't post messages like this to this list. There's no benefit
> to anyone.

Please don't make him feel unwelcome.  I think it's interesting to see
a Lisp-expert using Ruby.
William J. (Guest)
on 2009-02-15 22:50
(Received via mailing list)
Michael .. wrote:

>         "4"=>"",
>         "7"=>"",
>         "2"=>"Value5",
> 4,[8 => Value4]
> 4,[2 => Value5]
>

result.delete_if{|k,v| {} == v.delete_if{|a,b| b==""}}
p result

{"1"=>{"1"=>"Value1", "3"=>"Value2"}, "2"=>{"8"=>"Value3"},
 "4"=>{"8"=>"Value4", "2"=>"Value5"}}
Douglas S. (Guest)
on 2009-02-15 23:21
(Received via mailing list)
I agree with david.  If you have nothing positive to say, remain silent.

On Feb 15, 2009 12:50 PM, "William J." <removed_email_address@domain.invalid> 
wrote:

Michael .. wrote: > Hello. > > I have this Hash. > >
result={"1"=>{"6"=>"",
> "7"=>"", > ...
result.delete_if{|k,v| {} == v.delete_if{|a,b| b==""}}
p result

{"1"=>{"1"=>"Value1", "3"=>"Value2"}, "2"=>{"8"=>"Value3"},
 "4"=>{"8"=>"Value4", "2"=>"Value5"}}
Julian L. (Guest)
on 2009-02-16 04:05
(Received via mailing list)
That was very positive! ;) hehe I agree, it's useful to say positive
things. It's also useful to not feed people ready-made answers. My
math teacher always said it's the working that's important, not the
answer. Of we care about a person's understanding, we'll help them
learn rather than give them direct answers.

Blog: http://random8.zenunit.com/
Learn rails: http://sensei.zenunit.com/
This topic is locked and can not be replied to.