我具有指示像 頻率的文本文件「讀出1迪克1約翰1書1 讀1不同的1 1不同的1 」 我也有對這些詞語所定義的字典dict = {」 a':1,'book':2}字典在Python
我想用它們的字典值替換單詞。任何人都可以告訴我這是怎麼做的?
我具有指示像 頻率的文本文件「讀出1迪克1約翰1書1 讀1不同的1 1不同的1 」 我也有對這些詞語所定義的字典dict = {」 a':1,'book':2}字典在Python
我想用它們的字典值替換單詞。任何人都可以告訴我這是怎麼做的?
這很簡單:
text = # your text here
for word in dictionary:
text = text.replace(word, str(dictionary[word]))
編輯
有關子的問題,你可以使用正則表達式:
import re
text = # your text here
for word in dictionary:
text = re.sub('^|\s' + word + '\s|$', str(dictionary[word]) + ' ', text)
text = # your text here
dictionary = # your dictionary here (don't call it dict!)
' '.join(str(dictionary.get(word, word)) for word in text.split(' '))
text.split()而不是文本。 –
@RajaSelvaraj,我先做了,但是用'join'('')'將任何空格變成一個空格,這可能不是所期望的。 –
在另一方面,我認爲這會導致分裂如果在某些單詞之間有兩個空格,則可以將單詞變成更可靠的單詞。 –
你也可以使用re.sub
,而是提供一個function as the replacement argument:
import re
frequencies = {'a': 1, 'book': 2}
input_string = "read 1 dick 1 john 1 book 1 read 1 different 1 a 1 different 1 "
def replace_if_found(m):
word = m.group(1)
return str(frequencies.get(word, word)) + m.group(2)
print re.sub(r'(\w+)(\d+)', replace_if_found, input_string)
...它給你的輸出:
read 1 dick 1 john 1 2 1 read 1 different 1 1 1 different 1
的優點有,這只是替換,你有一個或多個單詞字符後跟一個或多個數字。
這功課嗎? –
這個問題真的不清楚。你想用數字1替換文件中的單詞'a',並用數字2替換文件中的單詞'book'? –
不,這不是一個家庭作業...我做的一些東西作爲實驗 – Tanmoy