我有以下语句,它使用client
从Redis DB获取数据。对于某些条目,它返回null
。如何查看null
并将0
替换为一行?是否有类似getOrElse
的内容?或者我可以以某种方式使用Option[String]
?我想避免使用if qty_str == null
。
val qty_str : String = Dress.up(client).hget("pk:"+ind,"qty")
答案 0 :(得分:1)
kf = cross_validation.KFold(y_data.shape[0], \
n_folds=10, shuffle=True, random_state=30)
err = [] # to hold cross val errors
# xgb instance
xgb_model = xgb.XGBClassifier(n_estimators=_params['n_estimators'], \
max_depth=params['max_depth'], learning_rate=_params['learning_rate'], \
min_child_weight=_params['min_child_weight'], \
subsample=_params['subsample'], \
colsample_bytree=_params['colsample_bytree'], \
objective='multi:softmax', nthread=4)
# cv
for train_index, test_index in kf:
xgb_model.fit(x_data[train_index], y_data[train_index], eval_metric='mlogloss')
predictions = xgb_model.predict(x_data[test_index])
actuals = y_data[test_index]
err.append(metrics.accuracy_score(actuals, predictions))
函数将Option
变为T
,该Option[T]
可能为null。完成后,您可以使用map
将Option[String]
变为Option[Int]
,然后使用getOrElse
将None
替换为默认值。
val qty_not_null : Option[String] = Option(qty_str)
val qty_int : Int = qty_not_null.map(_.toInt).getOrElse(0)