2

文字列のリストがあります。

文字列の 1 つ (インデックス 5 など) が空の文字列である場合、それを "N" に置き換えます。

それ、どうやったら出来るの?単純な方法 (Java プログラマー向け) は機能しません。

string_list[5] = "N"

与える

「str」オブジェクトは項目の割り当てをサポートしていません

(string_list はもともと .csv ファイルから取得されたものです。そのため、空の文字列が含まれている可能性があります。)

4

5 に答える 5

5

あなたのエラーは、string_list が文字列のリストではなく、実際の文字列であることを示しているようです (文字列は不変であるため、割り当てをサポートしていません)。

string_list が、たとえば : のような文字列の実際のリストである場合、を取得string_list = ["first", "second", "", "fourth"]することができます。string_list[2] = "third"string_list = ["first", "second", "third", "fourth"]

リスト内の空の文字列がどこにあるかを自動的に検出する必要がある場合は、indexを試してください。

string_list[string_list.index("")] = "replacement string"

print string_list
>>> ["first", "second", "replacement string", "fourth"]
于 2012-08-23T08:41:57.083 に答える
2

文字列のリストがあると言いますが、エラーから、文字列にインデックスを付けようとしているように見えます

l =  ["a", "b", "", "c"]

文字列のリストです。

l = ["N" if not x else x for x in l]

空の文字列が「N」に置き換えられた文字列のリストです

于 2012-08-23T08:48:02.950 に答える
1

これを試して:

>>> s = 'abc de'
>>> s.replace(' ', 'N')
'abcNde'

他の人が述べたように、実際には文字列自体のように聞こえstring_listます。つまり、割り当てを使用して文字を変更することはできません。

于 2012-08-23T08:38:53.310 に答える
0

Python では、リストを操作し、必要に応じてそれらを文字列に変換します。

>> str = list("Hellp")

>> str
['H', 'e', 'l', 'l', 'p']

>> str[4] = 'o'

>> str
['H', 'e', 'l', 'l', 'o']

それを文字列にするには

>> "".join(str)

'Hello World'

Python 文字列は不変であり、変更することはできません。

または、 List Comprehensionsを使用できます。

何かのようなもの:

>> myStr = ['how', 'are', 'yew', '?']

>> myStr = [w.replace('yew', 'you') for w in myStr]
于 2012-08-23T08:44:26.873 に答える