对于没有斜杠的文件名(例如s = 'arbabababtybab'
o = [s[i:i+3] for i in range(len(s)-2) if s[i:i+3] == 'bab']
n = len(o)
),以下lambda会返回empty ""
:
"local.txt"
我想确保(用非常简洁的语法)lambda总是返回一个正确的目录名,即lambda filename: os.path.dirname(filename)
而不是"."
。
这样做的方式比以下更简洁:
""
如果lambda filename: os.path.dirname(filename) if os.path.dirname(filename) != "" else "."
不必指定(甚至可能被评估)两次,那将是很好的。
答案 0 :(得分:1)
利用or
的合并行为:
lambda filename: os.path.dirname(filename) or "."