Drawing a roaming figure in a field, with less flickering
You may want to use the curses library.

def clear():
    os.system('cls')


You complain about "flicker", which is related to perceptible "slowness". Almost certainly your environment supports xterm/vt100 ANSI escape sequences. You forked off a command, cls, that printed &lt;ESC&gt;[H to put cursor at top of screen, and &lt;ESC&gt;[2J to clear screen. You could more quickly print() such escape sequences.

map1=("#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#")


Please don't do that. Express it as map1 = '#' * 31

del edit_map[x]
edit_map.insert(x, "o")


Delete and insert both have linear cost, which is small for a 31-char string, but still, avoid turning O(1) ops into O(n) ops. Instead, just assign: edit_map[x] = 'o'.

You can reposition the cursor with a simple CR rather than ANSI sequences: print(edit_map + '\r'). That alone could make the flicker negligible.