Multidimensional hash - get all not blank keys

M

Michael ..

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
 
A

Andrew Timberlake

[Note: parts of this message were removed to make it a legal post.]

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

=> 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 Timberlake
http://ramblingsonrails.com
http://www.linkedin.com/in/andrewtimberlake

"I have never let my schooling interfere with my education" - Mark Twain
 
P

Pascal J. Bourguignon

Michael .. said:
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!
 
D

David A. Black

Michael .. said:
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!

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!
 
P

Pascal J. Bourguignon

David A. Black said:
Michael .. said:
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!

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.
 
D

David A. Black

David A. Black said:
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!

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!
 
P

Pascal J. Bourguignon

David A. Black said:
David A. Black said:
On Sun, 15 Feb 2009, Pascal J. Bourguignon wrote:

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!

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.

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.
 
J

Julian Leviston

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/

David A. Black said:
On Sun, 15 Feb 2009, Pascal J. Bourguignon wrote:

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!

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.

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.
 
T

Tim Hunter

Julian said:
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.
 
W

William James

David said:
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.
 
W

William James

Michael said:
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]

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"}}
 
D

Douglas Seifert

[Note: parts of this message were removed to make it a legal post.]

I agree with david. If you have nothing positive to say, remain silent.


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"}}
 
J

Julian Leviston

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/
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,982
Messages
2,570,185
Members
46,737
Latest member
Georgeengab

Latest Threads

Top