ホームページ  >  記事  >  バックエンド開発  >  .join() が Python で文字列を追加するのではなく、要素間に文字を挿入するのはなぜですか?

.join() が Python で文字列を追加するのではなく、要素間に文字を挿入するのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-19 20:01:03500ブラウズ

Why Does .join() Insert Characters Between Elements Instead of Appending a String in Python?

文字列連結の Join() メソッドを理解する

Python を使用していると、.join() が文字列を連結するための推奨される方法。ただし、その機能は初心者にとって混乱を招く可能性があります。

次のコード スニペットを考えてみましょう:

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

このコードは期待どおりに動作しません。結果に「595」を追加する代わりに、「595」の数字が散在する ASCII アルファベットの文字の出力が生成されます。

.join() メソッド

その理由を理解するために、.join() メソッドを分解してみましょう。文字列を引数として受け取り、指定されたリストの要素の間に挿入します。例:

","join(["a", "b", "c"])

は「a,b,c」を生成します。リストの各要素の間に「,」が挿入されます。

コードでは、「595」は 3 つの個別の文字 ["5"、"9"、"5"] のリストとして扱われます。その結果、.join() メソッドの文字列引数がこれらの文字の間に挿入され、観察された出力が得られます。

代替方法:

文字列「595」を生成された文字列に連結するには、代わりに演算子を使用する必要があります:

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

これは正しく動作します。 2 つの文字列を連結し、目的の内容を含む 1 つの文字列を生成します。

以上が.join() が Python で文字列を追加するのではなく、要素間に文字を挿入するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。