Has any player ever hit .300 for four different teams?

Rogers Hornsby is the only player to accomplish this feat. In 12 years with the St. Louis Cardinals, he hit above .300 ten times and over .400 three times. After being traded, he hit .361 for the New York Giants in 1927, and .387 for the Boston Braves in 1928. He spent the next four years with the Chicago Cubs, and hit above .300 in two of those seasons. He played the last five seasons of his career with the St. Louis Browns as a pinch hitter. He hit above .300 in four of those five years, but didn’t have enough at-bats for his average to be official. All in all, Hornsby had 14 years with an average above .300. He finished with a career average of .358, second all-time only to Ty Cobb‘s .367.