Removing all whitespaces

Tags:

Python 코딩중 golfing.

>>> s = """a b\\tcd 
... e
... """
>>> ''.join(s.split()) # 난 이 문법이 정말 싫다.
'abcde'
>>> str.join('', s.split()) # 이게 더 낫다
'abcde'

split과 join이 whitespace를 제거한다는 것은 비직관적. regular expression을 쓴다고 하더라도 import re 하는 순간 golfing과는 멀어진다.

Ruby라면 이렇게 할 수 있다.

irb(main):001:0> s = "a b\t
irb(main):002:0" c
irb(main):003:0" "
=> "a b\t\nc\n"
irb(main):012:0> s.gsub(/\s/, '') # 공백을 제거하거나
=> "abc"
irb(main):003:0> s.scan(/\w+/).join # 공백이 아닌 문자를 합한다
=> "abc"

언어에 정규식이 더 잘 녹아들어가고 1 liner가 멋지게 가능한 언어가 바로 루비인 듯. 이런점에서는 Perl의 전통을 잘 계승한 듯 싶다.