如何在Ruby中读取列表到数组?

时间:2016-08-13 22:49:02

标签: arrays ruby list

我有一个.txt这样的文件:

1039812323
2534563457
3457346731
2525146715

如何将其传递到数组中,然后按索引访问它的元素?

3 个答案:

答案 0 :(得分:1)

如果你想要一个数组

File.readlines("a.txt")

请注意您将使用" \ n"在每个数字的末尾

["1039812323\n", "2534563457\n", "3457346731\n", "2525146715\n"]

然后你可以使用任何ruby的数组迭代器(每个,收集,检查,映射等)

答案 1 :(得分:0)

使用Horacio Branciforte的方法回答我的问题的其他部分(“......然后通过索引访问它的元素?”)与\n警告相对应,这是一种快速方法,可以将\n f的{​​{1}}的第i个元素的f关闭,其中File.redlines("a.txt")是数组f[$i][0..10]

import math

def nearest_pow(n):
    if n <= 1:
        return n
    best = n
    for k in xrange(2, n):
        p = math.pow(n, 1.0 / k)
        for x in xrange(2):
            best = min(best, abs((int(p) + x) ** k - n))
        if int(p) == 1:
            break
    return best

print nearest_pow(70)

当然,只有当您知道数据中的所有元素无限期地进入固定长度时,这才有效。

答案 2 :(得分:0)

你可以这样做。

array = []
File.open("path_to_file").each_line do |line|
    array.push(line.chomp) # if you need '\n' then ommit chomp
end
# to iterate through the whole array
array.each do |ele|
    puts ele
end
# or to access by index
puts array[0] # to print the first value