code: def _mul_scalar(self, other):
      if other == 0:
          # Multiply by zero: return the zero matrix
          new = self._lil_container(self.shape, dtype=self.dtype)
      else:
          res_dtype = upcast_scalar(self.dtype, other)
  
          new = self.copy()
          new = new.astype(res_dtype)
          # Multiply this scalar by every element.
          for j, rowvals in enumerate(new.data):
              new.data[j] = [val * other for val in rowvals]
      return new
  
imports: from bisect import bisect_left
  import numpy
  from ._matrix import spmatrix
  from ._base import _spbase, sparray, issparse
  from ._index import IndexMixin, INT_TYPES, _broadcast_arrays
  from ._sputils import getdtype, isshape, isscalarlike, upcast_scalar, check_shape, check_reshape_kwargs
  from .None import _csparsetools
label_desc: Use image node_id 28 for calling the _lil_base obj's underlying member method code with example usage: obj._mul_scalar(other) and returns: new