Вы можете получить коэффициент определенного термина, используя coeff();
x, a = symbols("x, a")
expr = 3 + x + x**2 + a*x*2
expr.coeff(x)
# 2*a + 1
Здесь я хочу извлечь все коэффициенты x, x ** 2 (и так далее), например:
# for example
expr.coefficients(x)
# want {1: 3, x: (2*a + 1), x**2: 1}
Существует метод as_coefficients_dict(), но кажется, что это не работает так, как я хочу;
expr.as_coefficients_dict()
# {1: 3, x: 1, x**2: 1, a*x: 2}
expr.collect(x).as_coefficients_dict()
# {1: 3, x**2: 1, x*(2*a + 1): 1}