• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

将python字典转换为ruby数据结构

ruby 来源:user1433153 3次浏览

我有一个算法,它存储了python中一个由n个字符组成的矩阵的坐标。例如将python字典转换为ruby数据结构

a b 
c d 

将被存储为坐标的字符对的列表:

(0, 0) a (0, 1) b 
(1, 0) c (1, 1) d 

我的Python代码如下

def init_coordination(self): 

    list_copy = self.list[:] 
    row = 0 
    column = 0 
    coordination = {} 

    for char in list copy 

     if column >= self.column: 
      row += 1 
      column = 0 

     coordination[char] = (row, column) 
     column += 1 

    return coordination 

我想实现这个算法红宝石,我猜测最接近ruby字典的数据结构是哈希。我需要一些建议与下面的红宝石代码:

def self.init_coordination 
    position = Hash.new("Coordination of char") 
    row = 0 
    column = 0 
    @list.each do |char| 
     if column < @column 
      position[row, column] = char 
      column = column + 1 
     elsif column == @column 
      column = 0 
      row = row + 1 
     elsif row == @row 
      puts position 
     end 
    end 

此外,我将如何代表红宝石列表?


===========解决方案如下:

Ruby中的列表被称为Arrays。

<code class="prettyprint-override">arr = [] 
arr.push(0) # => [0] 
arr.concat([1,2,3]) # => [0, 1, 2, 3] 
arr2d = [[0,0],[0,1],[1,0],[1,1]] 
</code>

还有一个Matrix type这可能是更有效,更可能有更多感兴趣的操作。

<code class="prettyprint-override">require 'matrix' 
matrix = Matrix[[0,0],[0,1],[1,0],[1,1]] 
matrix[0,0] # => 0 
</code>

版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)