2017-03-30 25 views
-1

我使用.split()方法從字符串中創建了一個列表。 例如:string =「我喜歡雞」我將使用.split()在字符串中生成一個單詞列表['I','like','chicken'] 現在,如果我想用別的東西替換'雞',我可以使用的方法就像.replace()但是列表?python中有沒有類似.replace()的列表方法?

回答

0

這樣的方法並不存在,但列表理解可以適應的目的很容易,需要對list沒有新的方法:

words = 'I like chicken'.split() 
replaced = ['turkey' if wd == "chicken" else wd for wd in words] 
print(replaced) 

,輸出:['I', 'like', 'turkey']

3

沒有什麼內置的,但它只是一個循環來做原地替換:

for i, word in enumerate(words): 
    if word == 'chicken': 
     words[i] = 'broccoli' 

或更短的選項,如果總是隻有一個實例:

words[words.index('chicken')] = 'broccoli' 

或列表理解創建一個新的列表:

new_words = ['broccoli' if word == 'chicken' for word in words] 

任何一個都可以在一個功能被包裹起來:

def replaced(sequence, old, new): 
    return (new if x == old else x for x in sequence) 


new_words = list(replaced(words, 'chicken', 'broccoli')) 
相關問題