It's very unclear what you are asking. The first piece of code correctly does what it is supposed to do -- it sets that function as attribute a of Map.
Map.a(42)
But python assumes a as Map class method
Python doesn't "assume" it is a "class method". It is not a "class method". All variables set in the body of a class declaration become members of the class. What were you expecting?
"Class method" refers to things with the @classmethod decorator. This is different from things with the @staticmethod decorator, and also different from things without either. As is, it is neither a "class method" nor a "static method". You need to understand the differences among all three.
The @staticmethod decorator only affects when you try to call a method on an instance of Map. You did not say you were doing any such thing. When accessing an attribute of class directly and calling it, there is no difference.
lambda function. It's just a different syntax for creating certain limited kinds of perfectly normal functions, usually for convenience when a function only needs to exist as an argument to another function. If you're immediately giving it a name, there's not much reason to use a lambda.