Do Python 3.10 em diante é possível usar algo como o "switch case" em outras linguagens, que é o "structural pattern matching".
No caso ficaria algo como:
def recieveAction(action):
match action:
case 'create':
return 1
case 'read':
return 2
case 'update':
return 3
case 'delete':
return 4
case _:
return none
A leitura fica simples. Só não consigo te dizer agora se é mais eficiente computacionalmente falando, mas 'enxuga' um pouco os IFs do código.