2019年10月24日木曜日

[Python]キャメルケースをケバブケースに変換する。

問題

キャメルケースをケバブケースに変換する関数を記述せよ。

ただし、関数の戻り値(文字列)は小文字のみ含むものとする。

  • kebabize('camelsHaveThreeHumps') // camels-have-three-humps
  • kebabize('camelsHave3Humps') // camels-have-humps
  • kebabize('myCamelCasedString') // my-camel-cased-string
  • kebabize('myCamelHas3Humps') // my-camel-has-humps
  • kebabize('SOS') // s-o-s
  • kebabize('42') // ''(空文字)

解答

def kebabize(s):
    return ''.join(c if c.islower() else '-' + c.lower() for c in s if c.isalpha()).strip('-')