diff --git a/crates/polars-core/src/series/arithmetic/borrowed.rs b/crates/polars-core/src/series/arithmetic/borrowed.rs index 26c8282184be..a40e5dd6d2d5 100644 --- a/crates/polars-core/src/series/arithmetic/borrowed.rs +++ b/crates/polars-core/src/series/arithmetic/borrowed.rs @@ -532,6 +532,12 @@ impl Add for &Series { (DataType::Struct(_), DataType::Struct(_)) => { _struct_arithmetic(self, rhs, |a, b| a.add(b)) }, + (left_dtype, DataType::List(_)) if left_dtype.is_numeric() => { + // Lists have implementation logic for rhs numeric: + let mut result = (rhs + self)?; + result.rename(self.name().clone()); + Ok(result) + }, _ => { let (lhs, rhs) = coerce_lhs_rhs(self, rhs)?; lhs.add_to(rhs.as_ref()) @@ -584,6 +590,12 @@ impl Mul for &Series { let out = rhs.multiply(self)?; Ok(out.with_name(self.name().clone())) }, + (left_dtype, DataType::List(_)) if left_dtype.is_numeric() => { + // Lists have implementation logic for rhs numeric: + let mut result = (rhs * self)?; + result.rename(self.name().clone()); + Ok(result) + }, _ => { let (lhs, rhs) = coerce_lhs_rhs(self, rhs)?; lhs.multiply(rhs.as_ref())