2014-01-14 2 views
1

또는 컨텍스트에 내장 된 은 상태 조합을 간결하게 표현하고 싶습니까?해시가있는 루비의 조합 기호

을 감안할 때 다음

{ 
    animal: [:dog, :cat], 
    disposition: [:grumpy, :hungry, :sleepy] 
} 

내가 만들고 싶어 :

[ 
    {animal: :dog, disposition: :grumpy}, 
    {animal: :dog, disposition: :hungry}, 
    {animal: :dog, disposition: :sleepy}, 
    {animal: :cat, disposition: :grumpy}, 
    {animal: :cat, disposition: :hungry}, 
    {animal: :cat, disposition: :sleepy} 
] 

을 즉, 입력 상태의 수를 복용보다 2

기타 내 앞에이 문제를 해결해야합니다 우아한 방식으로?

파이썬은 here

답변

1

This SO answer 작업을해야하고의 배열 방법이있다.

[{동물 => 개 : 배치 => 심술}, {동물 => 개 : 배치 => 배가}, {동물 => 개 : 처분 => : sleepy}, {: 동물 => : 고양이, : 처분 => : 심술}, {: 동물 => : 고양이, : 처분 => : 배고픈}, {: 동물 => : 고양이, 처분 => 졸린}]

+0

의 조합의 input.values ​​= [0] .product (* input.values ​​[1 ..- 1])지도 {| P |. 해시 [input.keys.zip p]} – xxjjnn

2

intial 해시 :

a={ 
    animal: [:dog, :cat], 
    disposition: [:grumpy, :hungry, :sleepy] 
} 
b= a[:animal].product(a[:disposition]).collect do |c| 
    {animal: c[0], disposition: c[1]} 
end 
+0

나는 이것을 좋아한다. +1 –