這是我到目前為止的代碼
replace_listA = {'Bear': [Black, Woods], 'Duck': [Bird, Feathers]}
replace_listB = {'Bear': [Grizzly, Woods], 'Duck': [Quack, Feathers]}
replace_listC = {'Bear': [Grizzly, Black], 'Duck': [Quack, Bird]}
with open("main.txt") as main:
words = main.read().split()
replaced = []
for y in words:
replacement = replace_listA.get(y, y)
replaced.append(replacement)
text = ' '.join(replaced)
print (text)
new_main = open("main.txt", 'w')
new_main.write(text)
new_main.close()
我需要做的兩件事是,每次出現 Bear 或 Duck 一詞時,我都希望代碼使用第一個值,然后將其從串列中洗掉。所以以replace_listA為例,單詞Bear的第一個實體被替換為“Black”,第二個實體被替換為“Woods”。
這是第一件事,
第二件事是當兩個值都用于鴨子熊并且需要一個新值時,然后在 3 個替換串列之間旋轉,(兩個值都已用于“熊”,而熊這個詞又出現了)
所以一個單詞串列
Duck Bear Bear Duck Duck Bear Bear Bear Bear Duck Bear Bear Duck Duck Bear Bear Bear
會成為
Bird Black Woods Feathers Quack Grizzly Woods Grizzly Black Quack Black Woods Bird Feathers
因為每個串列將依次替換
replace_listA
Duck Bear Bear Duck
Bird Black Woods Feathers
replace_listB
Duck Bear Bear
Quack Grizzly Woods
replace_listC
Bear Bear Duck
Grizzly Black Quack
replace_listA
Bear Bear Duck Duck
Black Woods Bird Feathers
uj5u.com熱心網友回復:
我建議您使用字典串列,此串列將是您將執行的連續替換,您可以回圈瀏覽此串列:
words_input = "Duck Bear Bear Duck Duck Bear Bear Bear Bear Duck Bear Bear Duck Duck"
replacements = [{'Bear': ["Black", "Woods"], 'Duck': ["Bird", "Feathers"]},
{'Bear': ["Grizzly", "Woods"], 'Duck': ["Quack", "Feathers"]},
{'Bear': ["Grizzly", "Black"], 'Duck': ["Quack", "Bird"]}]
output = []
index_replace = 0
count_replace = {key: 0 for key in replacements[0].keys()}
for word in words_input.split():
if count_replace[word] == len(replacements[index_replace][word]):
# We need to cycle through the replacements
index_replace = (index_replace 1) % len(replacements)
count_replace = {key: 0 for key in replacements[0].keys()}
idx_word = count_replace[word]
output.append(replacements[index_replace][word][idx_word])
count_replace[word] = 1
output_words = ' '.join(output)
print(output_words)
# Bird Black Woods Feathers Quack Grizzly Woods Grizzly Black Quack Black Woods Bird Feathers
(請注意,您的示例似乎并不完全準確,因為您的原始帖子中沒有翻譯最后一個“Bear Bear Bear”)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/358011.html
上一篇:驗證和計算BMI
