へたっぴpythonista

ド素人pythonistaとして、日々の学習成果や気づいたことについて書きます。

" ".join(iterable)はrosalindに必須か

rosalindを解いていると、たまに解答の形式としてカンマを用いずに空白で要素を区切ることが要求されます。つまり「A,B,C,D」ではなく「A B C D」としなくてはならないのです。カンマが入っていようものなら答えが正しくても不正解扱いです。

 

そこで[A,B,C,D]を"A B C D"に変換する手段となる" ".join(iterable)が必要になってきます。

str.join(iterable)はiterable内の文字列をstrで連結する関数です。strにはなんでも指定できるのでstr=" "とすれば要素を空白で連結(連結になってないけど)することが可能になるわけです。

 

注意:

join()は文字列のメソッドであるため、数値には使えません。使うならmap()を用いてiterable内の要素を全てstrにする必要があります。

 例 L=["A","B","C","D"]

            print(" ".join(L)) ⇒ A B C D

 

            L=[1,2,3,4]

            print(" ".join(L))    ⇒TypeError: sequence item 0: expected str instance, int found

   L=[1,2,3,4]

            L=map(str,L)

            print(" ".join(L))    ⇒1 2 3 4

 

文字列からリストへの変換list(str)に比べるとやや煩雑ですが、覚えておいて損はないはずです。こういう手間は出題者側が省くべきではないかなどとは言ってはいけません。