0

我是一名 GCSE Computing 学生,对 python 比较陌生。我正在进行我的第三个编程任务,其中涉及制作一个简单的刽子手游戏。我已经设法让游戏正常运行,但成功标准的一部分是用户可以更改单词集。此时程序正在使用预设单词列表。我设法编写了允许用户输入新单词集的代码,然后将它们存储为列表。但是,当我尝试用用户输入的新列表替换旧的单词集时遇到了问题。我被困住了,因为我还在度假,所以无法向我的老师寻求帮助。任何帮助或建议将不胜感激,因为我的时间不多了(我们将在 2013 年 6 月参加 GCSE)谢谢。在此处输入代码`

def newwords():
        newgamewords.append(input('Enter new word: '))
        print('Do you want to add any more words? yes or no?')
        answer=input()
        if answer == 'yes':
            newwords()
        else:
            while len(guessedletters) > 0 : guessedletters.pop()
            while len(displayletters) > 0 : displayletters.pop()
            while len(hangmanpics) > 0 : hangmanpics.pop()
            gamewords[:]=newgamewords
            hangmangame()

这是一些代码...

4

1 回答 1

2

您可以使用切片分配替换列表中的元素(就地):

word_list = [ 'foo','bar','baz' ]
new_list = [ 'qux','tux','lux', 'holy cow!  python is awesome' ]

word_list[:] = new_list
print(word_list)  #[ 'qux','tux','lux', 'holy cow!  python is awesome' ]

new_list甚至old_list不需要相同的长度。


如果您愿意,您也可以仅将列表的一部分替换为另一个列表的一部分:

word_list = [ 'foo','bar','baz' ]
new_list = [ 'qux','tux','lux', 'holy cow!  python is awesome' ]

word_list[1:-2] = new_list[:-1]
print word_list #['foo', 'qux', 'tux', 'lux', 'bar', 'baz']
于 2013-01-04T20:23:05.407 回答