小ネタ。
開発環境
> python3 -V
Python 3.9.0
forbiddenfruit
This project allows Python code to extend built-in types.
forbiddenfruit · PyPI
forbiddenfruitは組み込み型の拡張を可能とするライブラリ。
>>> numbers = ["1", "2", "3"]
>>> "-".join(numbers)
'1-2-3'
この処理がモヤるので、解決策としてlistにjoinを拡張してみた。(リストを結合するのに文字列始まりなのがモヤる)
コード
from forbiddenfruit import curse
def join(self, separator=""):
return separator.join(self)
curse(list, "join", join)
numbers = ["1", "2", "3"]
a = numbers.join("-") # スッキリ!
b = "-".join(numbers)
assert a == b
結局内部で既存の実装を使っているが、長年のモヤモヤが晴れたので良し。