更新列表并重新打印?

时间:2013-12-08 23:13:03

标签: python

我正在尝试构建一个简单的游戏,但我无法更新列表并重新打印任何想法?

我从txt文件中提取一些细节并将它们放入列表中。我打印列表,这是有效的。

我使用.replace进行更新,但是当我打印列表时,它只打印列表中的最后一项。这已正确更新。我怎样才能得到它以便再次打印已更新的整个列表?

任何想法???

这是我的代码:

print("Can you solve the puzzle? \nBelow are some words in code form can you crack the code and figue out\nthe words?\n")
words = open ("words.txt", "r")
lines_words = words.readlines()

for line_words in lines_words:
    print (line_words)

words.close()

print("\nHere are some clues to help you!\n")

clues = open ("clues.txt", "r")
print (clues.read())

clues.close()

###

print ("\nThis is what we have so far....")

# define the function
def replace_all(text, dic):
    for i, j in dic.items():
        text = text.replace(i, j)
    return text


# dictionary with key:values.
reps = {'#':'A', '*':'M', '%':'N'}

txt = replace_all(line_words, reps)
print (txt)

1 个答案:

答案 0 :(得分:0)

你犯了两个错误:

  1. line_words循环中重复使用 for名称:

    for line_words in lines_words:
        print (line_words)
    

    依次用列表中的每行替换旧值(列表)。在最后一次迭代之后,意味着line_words已被最后一行替换。

    循环中使用的其他名称:

    for line in lines_words:
        print (line)
    
  2. 您需要使用另一个循环来替换行中的文本:

    for line in line_words:
        txt = replace_all(line, reps)
        print (txt)
    

    这会在迭代中模糊您的单词以进行打印,而不会更改line_words中包含的原始字符串。