문제

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?

도움이 되었습니까?

해결책

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

다른 팁

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>}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top