Question

From a previous question functions cannot be defined inline in a dictionary object.

However, I just have this simple case,

def getExtension(fileName):
    return os.path.splitext(fileName)[1]

funcDict = { 
    'EXT': getExtension,  # maybe os.path.splitext[1]?
    }

print(funcDict['EXT']('myFile.txt'))

Is there someway to specify that I only want one element of the tuple returned by os.path.splitext so I can get out of defining getExtension?

Was it helpful?

Solution

funcDict = {
    'EXT': (lambda x: os.path.splitext(x)[1])
}

OTHER TIPS

I this it's sometimes better to use keyword arguments to instantiate a new dict, as the keyword arguments seem more readable.

funcDict = dict(EXT=(lambda x: os.path.splitext(x)[1]))

which will return:

{'EXT': <function <lambda> at 0x00000000021281E0>}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top