Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将python代码转换为ruby_Python_Ruby - Fatal编程技术网

将python代码转换为ruby

将python代码转换为ruby,python,ruby,Python,Ruby,好的,我是ruby新手,我有一个ID生成器,它根据时间生成一个ID。now.to\f/Time.Time()然后是一个8长度的ID,例如,这是工作的python版本 def anonId(a,b): a = a.split('.')[0] if len(a) > 4: i = a[6:] else: i = a return "".join(str(int(x) + int(y))[-1] for x, y in zip(i,

好的,我是ruby新手,我有一个ID生成器,它根据时间生成一个ID。now.to\f/Time.Time()然后是一个8长度的ID,例如,这是工作的python版本

def anonId(a,b):
        a = a.split('.')[0]
        if len(a) > 4: i = a[6:]
        else: i = a
        return "".join(str(int(x) + int(y))[-1] for x, y in zip(i, b[4:]))

anonId("1379697991.99",'26002859') 
将生成“9740”的ID 在ruby中,我尝试过类似的东西,但我还不太了解ruby,所以还不知道如何去做,但这里是我到目前为止所做的

def anonId(number,id)
    if String(number).length > 4 then number = String(number).split(".")[0][-4..-1] else number end 
    [number,id[4..-1]].zip.each do |x,y|
       #this is where I get stuck at, I'm not sure if the above is correct

    end
end
所以基本上,我需要知道如何将python代码转换成ruby
  • 在Ruby中,您不能只对字符串进行迭代—您必须指定如何进行迭代 (行、字节、代码点或字符)
  • zip
    是数组上的一种方法,使用类似
    an\u Array.zip(其他\u数组)
  • 如果要迭代数组(或任何可枚举的数组),请对每个元素执行某些操作并将结果存储在数组中,请使用
    map
  • 这将导致
    number.chars.zip(id[4..-1].chars.map do | x,y |


    注x和y是字符串。用
    x.to_i
    等将它们转换为整数。

    恐怕要做到这一点,你需要同时学习Python和Ruby。你到底有什么问题?什么东西出的不对?你看过了吗?我知道python是如何工作的,但我昨天开始学习ruby,我对如何转换它不太确定。但我会继续在谷歌上搜索zip和ruby方法,希望我发现你不太可能找到一个能为你转换代码的人,但是如果你对哪些特定的东西不起作用有疑问,我们可以帮助你。作为python的一个评论,这是一个有点奇怪的逻辑,在你的环境中可能有意义,也可能没有意义。首先,在删除小数点之前,是否有一个原因使您没有时间处理字符串(执行t=int(time.time())%10000,然后将其转换为字符串似乎会更简洁)。第二,如果(你,嗯,回到过去)a是5或6或7或8个字母长(或者换句话说,你的两个列表被传递给zip的长度不一样),那会怎么样谢谢你,我真的需要知道怎么做,你不知道这有多大帮助。