我有一個字符串列表。替換字符串列表中的一個字符串
如果字符串之一(例如,在指數5)是空字符串,我想用「N」來代替它。
我該怎麼做?天真的方法(Java程序員)不工作:
string_list[5] = "N"
給
'海峽' 對象不支持項目分配
(string_list最初來自一個.csv這就是爲什麼它可能包含空字符串。)
我有一個字符串列表。替換字符串列表中的一個字符串
如果字符串之一(例如,在指數5)是空字符串,我想用「N」來代替它。
我該怎麼做?天真的方法(Java程序員)不工作:
string_list[5] = "N"
給
'海峽' 對象不支持項目分配
(string_list最初來自一個.csv這就是爲什麼它可能包含空字符串。)
你的錯誤似乎表明您string_list不是字符串,但一個真正的字符串列表(不支持assignement因爲字符串是不可變的)。
如果您的string_list是一個真正的字符串列表,例如:string_list = ["first", "second", "", "fourth"]
,那麼您將可以通過string_list[2] = "third"
來獲得string_list = ["first", "second", "third", "fourth"]
。
如果需要自動檢測,其中一個空字符串位於列表,請嘗試使用:
string_list[string_list.index("")] = "replacement string"
print string_list
>>> ["first", "second", "replacement string", "fourth"]
我犯了一個dumdum的錯誤:當分裂我的原始線我給它一個索引,所以一個字符串被返回,而不是一個列表。 *感到尷尬* –
試試這個:
>>> s = 'abc de'
>>> s.replace(' ', 'N')
'abcNde'
正如其他人所說,這聽起來像string_list
實際上是一個字符串本身,這意味着你不能使用賦值更改字符。
在蟒蛇的工作列表和它們轉換爲字符串時需要的話。
>> 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]
你說你有串的列表,但是從你錯誤它看起來像你想索引串
l = ["a", "b", "", "c"]
是一串字符串。
l = ["N" if not x else x for x in l]
與「N」
不錯。好的東西值得我的錯誤。 –
任何有這樣的名字的人。讓我笑:) – Aesthete
下面的例子遍歷列表(子列表)名單替換爲空字符串的字符串列表,以替換字符串,一個字:
myoldlist=[['aa bbbbb'],['dd myword'],['aa myword']]
mynewlist=[]
for i in xrange(0,3,1):
mynewlist.append([x.replace('myword', 'new_word') for x in myoldlist[i]])
print mynewlist
# ['aa bbbbb'],['dd new_word'],['aa new_word']
你的兩個答案似乎是[幾乎相同](http://stackoverflow.com/questions/13781828/replace-a-string-in-list-of-lists/36938886#36938886)你可能可以考慮引用一個作爲你的答案,而另一個你只需要在評論中發佈一個鏈接(一旦你的代表> = 50) – Ian
@伊恩哦!我不知道這一點!謝謝! –
看起來像'string_list'實際上是一個字符串,而不是一個字符串列表。列表是可變的,所以你應該可以像你一樣替換它的項目。 – Kos
你有簡單的字符串沒有列表,你可以使用替換方法。 – Denis
你可以發佈你的'string_list'的例子嗎? –