我有這樣的元組:
('id1', ['date', 'type', 'value', '2017-11-11 08:32:46.934', 'no_error', '54.64325', '2017-11-11 08:32:47.356', 'no_error', '76.34553']
我只想檢索浮動元素。如果值只是一個元素而不是串列,我只找到了解決方案,使用類似的東西:
filter(lambda t: is_float(t[1]) == True)
is_float 是我創建的一個函式,顧名思義,如果值為浮點數,則回傳 true。我怎么能解決呢?
uj5u.com熱心網友回復:
您可以通過帶有 if 子句的串列理解來實作它:
def is_float(s):
try:
float(s)
return True
except ValueError:
return False
rdd.map(lambda key, list_value: (key, [element for element in list_value if is_float(element)]))
但是,這不會非常有效。
更新:我更改了代碼以合并 OP 的評論,即串列元素是字串。
uj5u.com熱心網友回復:
這isinstance()就是為了。True如果第一個引數是第二個引數的實體,它將回傳。
>>> isinstance(1, float)
False
>>> isinstance("1.0", float)
False
>>> isinstance(1.0, float)
True
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/372262.html
