Tic-Tac-Toe game in Python 3
Any help on how to optimize it?


Optimise readability, starting with following the Style Guide for Python Code.
(And yes, this is a useful step in optimising efficiency, too)  

(The below reads an ill-tempered diatribe more than a code review, the sole exculpation being the explicit question in the title. (I should look for a well-receives SE resource bound to exist.))  

How to write efficient source code for …?
Given a specification that looks ready for implementation,
- write tests shedding a light on correctness.
- fix(!) a limit for the effort to improve efficiency
- define a measure for efficient
(-if applicable, define relevant input data)
- automate measuring efficiency - memory usage is harder to assess than time used
 (use available tools - timeit, for starters)
 (It saves a lot of trouble to include (basic) functional tests here)
 (Don't believe sub-second measurements.
  Measure work completed in a fixed amount of time, not time used for a fixed amount of work.)
- use your first working version to establish a base line
- fix(!) what performance is good enough
- pick alternative implementations, jot down your guesses re. efficiency, measure
- time allowing (see limit above), experiment with improvements