You can use zip in a list comprehension to do the rotation:
LIST = [['.', '.', '.', '.', '.', '.'],
['.', 'O', 'O', '.', '.', '.'],
['O', 'O', 'O', 'O', '.', '.'],
['O', 'O', 'O', 'O', 'O', '.'],
['.', 'O', 'O', 'O', 'O', 'O'],
['O', 'O', 'O', 'O', 'O', '.'],
['O', 'O', 'O', 'O', '.', '.'],
['.', 'O', 'O', '.', '.', '.'],
['.', '.', '.', '.', '.', 'X']]
Rotate once:
LIST = [ [*r][::-1] for r in zip(*LIST) ]
for line in LIST: print(line)
['.', '.', 'O', 'O', '.', 'O', 'O', '.', '.']
['.', 'O', 'O', 'O', 'O', 'O', 'O', 'O', '.']
['.', 'O', 'O', 'O', 'O', 'O', 'O', 'O', '.']
['.', '.', 'O', 'O', 'O', 'O', 'O', '.', '.']
['.', '.', '.', 'O', 'O', 'O', '.', '.', '.']
['X', '.', '.', '.', 'O', '.', '.', '.', '.']
Rotate again:
LIST = [ [*r][::-1] for r in zip(*LIST) ]
for line in LIST: print(line)
['X', '.', '.', '.', '.', '.']
['.', '.', '.', 'O', 'O', '.']
['.', '.', 'O', 'O', 'O', 'O']
['.', 'O', 'O', 'O', 'O', 'O']
['O', 'O', 'O', 'O', 'O', '.']
['.', 'O', 'O', 'O', 'O', 'O']
['.', '.', 'O', 'O', 'O', 'O']
['.', '.', '.', 'O', 'O', '.']
['.', '.', '.', '.', '.', '.']
Rotate again:
LIST = [ [*r][::-1] for r in zip(*LIST) ]
for line in LIST: print(line)
['.', '.', '.', '.', 'O', '.', '.', '.', 'X']
['.', '.', '.', 'O', 'O', 'O', '.', '.', '.']
['.', '.', 'O', 'O', 'O', 'O', 'O', '.', '.']
['.', 'O', 'O', 'O', 'O', 'O', 'O', 'O', '.']
['.', 'O', 'O', 'O', 'O', 'O', 'O', 'O', '.']
['.', '.', 'O', 'O', '.', 'O', 'O', '.', '.']
For counterclockwise rotation you can use this:
LIST = [ [*r] for r in zip(*map(reversed,LIST)) ]
Without list comprehensions:
LIST = list(map(list,map(reversed,zip(*LIST)))) # clockwise
LIST = list(map(list,zip(*map(reversed,LIST)))) # counter clockwise