1. ホーム
  2. python

[解決済み] str' オブジェクトはアイテムの割り当てをサポートしていません。

2022-03-14 06:10:07

質問

文字列からいくつかの文字を読み取りたい s1 という文字列を作成し、それを別の文字列 s2 .

しかし s2[j] はエラーになります。

s2[j] = s1[i]

# TypeError: 'str' object does not support item assignment


C言語では、このように動作します。

int i = j = 0;
while (s1[i] != '\0')
    s2[j++] = s1[i++];

Pythonでの私の試み。

s1 = "Hello World"
s2 = ""
j = 0

for i in range(len(s1)):
    s2[j] = s1[i]
    j = j + 1

解決方法は?

Pythonでは、文字列は不変なので、文字をその場で変更することはできません。

ただし、以下のようなことは可能です。

for c in s1:
    s2 += c

これがうまくいく理由は、ショートカットであることです。

for c in s1:
    s2 = s2 + c

上記の は新しい文字列 への参照を保存し、その新しい文字列を s2 .