自分で作ったコードではなく作ってもらったコードなのですが、どうしても理解できないところがあります。
8行目のunlessを用いて条件式を表しているのはわかるのですが、偽のときに〜Array.newとするのところがわかりません。
なぜこのような表記にするのでしょうか?
また、10行目の h_word_origins[row[1]] << row[0]もわかりません。
わからないことばかりで、恥ずかしいのですがご鞭撻のほどよろしくお願いします。
require "csv" csv_date1=CSV.read("v_relations.csv") h_word_origins=Hash.new h_word_relations=Hash.new a_word_relations=Array.new csv_date1.each do |row| h_word_relations[row[0]]=row[1] unless h_word_origins[row[1]] then h_word_origins[row[1]]=Array.new end h_word_origins[row[1]] << row[0] a_word_relations << row end p h_word_origins
"ssDNA"=>["パルボウイルス科", "サーコウイルス科"], "dsDNA(RT)"=>["ヘパドナウイルス科"], "dsDNA"=>["ポックスウイルス科", "パピローマウイルス科", "アスファーウイルス科", "イリドウイルス科", "ポリオーマウイルス科", "ヘルペスウイルス科", "アデノウイルス科"]
"ssDNA"がrow[1]で、"パルボウイルス科"がrow[0]です。
よろしくお願いします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/25 13:58 編集
2017/09/25 16:13
2017/09/26 11:19
2017/09/26 12:36
2017/09/27 21:34
2017/09/27 22:12