我正在解析一個帶有nokogiri的html頁面並提取一些數據點。這似乎提取正確的數據點,而且還提取空值和逗號,這裏有最新提取的樣品:遍歷數組並刪除某些字符串元素
null,
3.28,
null,
null,
null,
1.91,
2.83,
null,
9.06,
null,
3.80,
6.42,
null,
我希望能夠刪除逗號的所有實例「空」,以及一般然後將每個元素轉換爲一個浮點數。上述似乎並沒有刪除「null」。
我正在解析一個帶有nokogiri的html頁面並提取一些數據點。這似乎提取正確的數據點,而且還提取空值和逗號,這裏有最新提取的樣品:遍歷數組並刪除某些字符串元素
null,
3.28,
null,
null,
null,
1.91,
2.83,
null,
9.06,
null,
3.80,
6.42,
null,
我希望能夠刪除逗號的所有實例「空」,以及一般然後將每個元素轉換爲一個浮點數。上述似乎並沒有刪除「null」。
你可能只是這樣做:
array.reject{|x|x =~ /null/}.map(&:to_f)
即使這樣做似乎也不起作用,還有更多我得到未定義的[「null」]數組的方法to_f。這可能是什麼? – Sun
在那裏添加一個flatten:array.flatten.reject ... – pguardiario
仍然是同樣的問題,它不會拋出錯誤,但它也不會擺脫null部分。 – Sun
在這裏你去:
input = <<INPUT
null,
3.28,
null,
null,
null,
1.91,
2.83,
null,
9.06,
null,
3.80,
6.42,
null,
INPUT
result = input.split.map(&:to_f)
=> [0.0, 3.28, 0.0, 0.0, 0.0, 1.91, 2.83, 0.0, 9.06, 0.0, 3.8, 6.42, 0.0]
result.delete(0.0)
=> 0.0
result
=> [3.28, 1.91, 2.83, 9.06, 3.8, 6.42]
這也會刪除可能在輸入 – pguardiario
爲真的任何0。但OP沒有聲稱,他需要零:) – kyrylo
他並沒有聲稱他需要四或五。我認爲代碼應該處理它們。 – pguardiario
不包括逗號(注意正則表達式中的括號內):
data1 = inline.to_s().scan(/y: (.*?)\,/)
結果:
result = data1.reject{|item| item == "null"}.map(&:to_f)
做一個'array.inspect'來檢查非打印字符。或者將'x =='空,''改爲'x =〜/ null。* $ /' – karatedog