왜 list.join(string)가 아니라 string.join(list) 인가요?


제가 생각하기엔 "Hello-world"를 만든다고 했을 때 소스코드1처럼 쓰는 게 더 보기 좋은 것 같은데 왜 소스코드1은 실행도 안되고 소스코드 2같이 써야 하나요? 이유가 있나요?

소스코드1

my_list = ["Hello", "world"]
print my_list.join("-")

소스코드2

my_list = ["Hello", "world"]
print "-".join(my_list)
  • 2016년 01월 13일에 작성됨

조회수 225


1 답변


좋아요
0
싫어요
채택취소하기

이유는 다음과 같습니다.

  1. 모든 iterablejoin될 수 있다.
  2. 무엇을 join하든, 결과는 str이다.

모든 iterable이 join 가능하다는 얘기는 list.join(string)을 만들면 tup.join(), dict.join(), file.join()등등 모든 iterable에 대해 join()을 만들어 줘야 한다는 뜻입니다..

굳이 이렇게 할 필요가 없기 때문에 join()은 지금의 str.join()과 같은 형태가 되었습니다

  • 2016년 01월 13일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close