比如, 我們希望希望檢測"一段string是否以特定的字符串結尾?", 通常我們使用:
if needle.endswith('ly') or needle.endswith('ed') or needle.endswith('ing') or needle.endswith('ers'): print('Is valid') else: print('Invalid')
十分丑陋是吧? 如果我們檢測變量needle是否是以下特定字符串之一的話, 會這樣寫:
if needle in ('ly', 'ed', 'ing', 'ers'): print('Is valid') else: print('Invalid')
但是, 我們無法在 endswith function 中使用 in, 但我們換一種想法, 我們需要檢查的其實是"一段string的結尾是否是以下字符串的任意一個?", 我們會發現python有內部函數any, 于是我們的代碼可以改為:
if any([needle.endswith(e) for e in ('ly', 'ed', 'ing', 'ers')]): print('Is valid') else: print('Invalid')
相信很多讀者在此會不同意我的做法, 或者有更好的寫法存在. 但這已經不重要. 我明白你們大多數都會使用類似的寫法面對這一相似的問題. 我真正的目的其實是展示一下Python的優雅之處.
新聞熱點
疑難解答