when does a functor map products into products? Motivation: wikipedia claims, that in algebraic topology, there holds: $\pi_1(X\times Y)\cong\pi_1(X)\times\pi_1(Y)$ and $\pi_1(X\vee Y)\cong\pi_1(X)\ast\pi_1(Y)$. A similar statement holds for arbitrary products and one-point unions, making the (covariant) fundamental group functor $\pi_1:\mathrm{TOP}^0 / h-\mathrm{TOP}^0\rightarrow GRPS$ preserve products and coproducts.
I'm guessing the same holds for the functors $\pi_k$ (homotopy groups), $H_k$ (homology groups)?
Definitions:


Examples:
In the category of sets, groups, rings, $R$-modules, vector spaces, topological spaces,etc, the product is the cartesian product. In the category of sets and topological spaces, the coproduct is the disjoint union/topological sum. In the category of groups, the coproduct is the free product $\ast$. In the abelian group / $R$-modules / vector spaces category, it is the direct sum $\oplus$. In the topological pointed spaces category, it is the one-point union $\vee$.
Question: I would very much like to prove this in a general way, so I'd like to know the following:
Theorem???: Suppose $F:\underline{A}\rightarrow\underline{B}$ is a covariant / contravariant functor. What are some (reasonably general) sufficient conditions on $F,\underline{A},\underline{B}$, that make $F$ send (products to products and coproducts to coproducts) / (products to coproducts and coproducts to products ), i.e.
$$F \text{ covariant }\Rightarrow F(\prod_{i\in I}A_i)=\prod_{i\in I}F(A_i)\text{ and }F(\coprod_{i\in I}A_i)=\coprod_{i\in I}F(A_i);$$
$$F \text{ contravariant }\Rightarrow F(\prod_{i\in I}A_i)=\coprod_{i\in I}F(A_i)\text{ and }F(\coprod_{i\in I}A_i)=\prod_{i\in I}F(A_i)?$$
The sufficient conditions that I'm looking for are primarily intended for important standard functors, such as $\pi_k$, $H_k$, $H^k$, tangent and cotangent bundle functor, ... so that I can prove the results in one sweep.
Counterexample: In the category of division rings / fields, we have $\mathbb{Z}_2\times\mathbb{Z}_2 = \mathbb{Z}_2$, thus the forgetful functor to the category of sets doesn't preserve products.
 A: The preservation of (co)products is related to the existence of a left (or right) adjoint; see e.g. wikipedia on the Adjoint functor theorem.  If you know the existence of an adjoint (and some functors are essentially defined as adjoints, such as free groups, and tensor products), this provides a convenient way to deduce that the functor preserves products (or coproducts, as the case may be).
A: This is a comment really.  I just want to point out that there is a fairly natural functor that exchanges products and coproducts even though it has no left or right adjoint and is not representable: the functor that assigns to each finitely generated augmented $k$-algebra $\Lambda$ its cohomology ring $\operatorname{Ext}^* _\Lambda (k,k)$.
A: A useful sufficient condition is that such a functor $F : C \to \text{Set}$ is representable; such functors preserve limits more or less by definition. For example:


*

*The forgetful functor $\text{Grp} \to \text{Set}$ preserves limits because it's $\text{Hom}(\mathbb{Z}, -)$.

*The forgetful functor $\text{Ring} \to \text{Set}$ preserves limits because it's $\text{Hom}(\mathbb{Z}[x], -)$.

*For $R$ a commutative ring, the forgetful functor $R\text{-Mod} \to \text{Set}$ preserves limits because it's $\text{Hom}(R, -)$. 

*The forgetful functor $\text{Top} \to \text{Set}$ preserves limits because it's $\text{Hom}(\bullet, -)$ where $\bullet$ is the one-point space.

*The homotopy group functors $\pi_k : \text{hTop}_{\ast} \to \text{Set}$, where $\text{hTop}_{\ast}$ is the homotopy category of pointed topological spaces, preserve limits because they are $\text{Hom}(S^k, -)$. 


(This argument doesn't directly apply to functors which take values in categories other than $\text{Set}$, but there's a way to extend it that I'm not familiar with: see this MO question. The extended argument should handle cohomology by Brown representability.)
Another useful sufficient condition is that such a functor $F : C \to D$ is a right adjoint (equivalently, has a left adjoint). This is true of many forgetful functors (where the left adjoint is the corresponding free functor), including the ones above. In fact, the forgetful functor $\text{Top} \to \text{Set}$ has both a left and a right adjoint, which is why it preserves both limits and colimits. The left adjoint sends a set to the discrete topology on that set, and the right adjoint sends a set to the indiscrete topology on that set. 
The two conditions are related. If $F : C \to \text{Set}$ has a left adjoint $G : \text{Set} \to C$, then
$$\text{Hom}_C(G(X), Y) \cong \text{Hom}_{\text{Set}}(X, F(Y))$$
implies that
$$\text{Hom}_C(G(1), Y) \cong \text{Hom}_{\text{Set}}(1, F(Y)) \cong F(Y)$$
hence $F$ is representable by $G(1)$. This general pattern explains the forgetful examples above.
