1. ホーム
  2. パイソン

[解決済み】.join()メソッドは、具体的に何をするのですか?

2022-04-09 20:19:31

質問

私はPythonのかなりの初心者ですが、完全に混乱しています。 .join() 文字列を連結する方法として推奨されていることを読みました。

試してみました。

strid = repr(595)
print array.array('c', random.sample(string.ascii_letters, 20 - len(strid)))
    .tostring().join(strid)

というようなものが出てきました。

5wlfgALGbXOahekxSs9wlfgALGbXOahekxSs5

なぜ、このような仕組みになっているのでしょうか? というのは 595 は自動的に追加されるのですか?

どのように解決するのですか?

出力をよく見てください。

5wlfgALGbXOahekxSs9wlfgALGbXOahekxSs5
^                 ^                 ^

元の文字列の "5", "9", "5" をハイライトしてみました。Pythonの場合 join() メソッドは文字列メソッドであり リスト を文字列と結合します。もっと簡単な例で説明できるかもしれません。

>>> ",".join(["a", "b", "c"])
'a,b,c'

リストの各要素の間に","が挿入されます。あなたの場合、"list"は文字列表現の"595"で、これはリスト ["5", "9", "5"] として扱われる。

を探しているようです。 + の代わりに

print array.array('c', random.sample(string.ascii_letters, 20 - len(strid)))
.tostring() + strid