我有一个带有表格的文件,显示了一些用户之间的关系:
user1. user2
a. 1
b. 1
c. 2
d. 2
e. 2
...
为此,我想创建这种哈希:
my_hash = {"1"=> ['a','b'], "2"=> ['c', 'd', 'e']}
我现在遇到的问题是我找不到添加到数组的方法:
例如,我有 my_hash = {"1"=> ['a'], "2"=> ['c', 'd', 'e']}
,如何将 'b' 添加到键“1”?
我试过了
months = Hash.new
months['1'] = ['a']
months['1'] << ['b']
但我得到了这个结果:{"111-111"=>["1111-aaaa", ["2222-bbb"]]}
答案 0 :(得分:1)
一旦您设置了 WHERE
CAST(trade_date AS DATE) = DATEADD(DAY, -1, CAST(SYSDATETIME() AS DATE))
,该键的值就是一个数组。
您想将 months['1'] = ['a']
推入该数组。
'b'
答案 1 :(得分:0)
当您执行 <<
时,您必须确保该值是 Array
,否则会出现错误 NoMethodError (undefined method << for nil:NilClass)
。使用更安全Array.wrap
:
h = {}
h['1'] = Array.wrap(h['1']).push('A')
h['1'] = Array.wrap(h['1']).push('B')
h['2'] = Array.wrap(h['2']).push('C')
# h is {"1"=>["A", "B"], "2"=>["C"]}