python - 有没有办法在python中重置列表的值?
问题描述
我正在开发一个井字游戏,它通过用 X 和 O 替换列表中的连字符来形成一个网格。我也是python的初学者,所以这段代码会很笨拙。问题是我希望游戏可以重新玩,但我找不到将列表重置为一开始的连字符的方法。这是一个简化的代码,可以更好地说明问题:
list = ["-","-","-", "X","O"]
def replace():
list[0] = list[3]
def main():
replace()
play_again = input ("play again?")
if play_again == "yes":
main()
else:
exit()
main()
这使得列表从["-","-","-", "X","O"]
到["X","-","-", "X","O"]
,从而使游戏正常运行。
我希望能够以某种方式list
回到["-","-","-", "X","O"]
玩家再次播放时。不幸的是,该列表似乎停留在["X","-","-", "X","O"]
. 我试过了:
list = ["-","-","-", "X","O"]
在上面添加replace()
list[0] = "-"
在上面添加replace()
这些选项都不起作用。
是否可以将 的值重置为list
我一开始的值?如果是这样,我应该如何解决这个问题?
解决方案
使您的代码“工作”的最简单的更改是:
def main():
global list
list = ["-","-","-", "X","O"]
replace()
play_again = input ("play again?")
if play_again == "yes":
main()
else:
exit()
(虽然这不是我从头开始做的方式——但你已经表明笨重的代码是好的/预期的,所以我不打算在这里尝试修复它。)
这也将起作用,并且不需要global
声明:
def main():
list[:] = ["-","-","-", "X","O"]
replace()
play_again = input ("play again?")
if play_again == "yes":
main()
else:
exit()
推荐阅读
- puppet - Puppet 模块文件语句不会复制本地
- swift - 细分后顶点函数和光线跟踪:获得更详细的加速结构几何图形
- bluetooth - 蓝牙 5.x / LE Audio 是否也能改善通话?(HSP/HFP 配置文件)
- javascript - 如何将输入值组合在一起
- r - ggplot时间序列绘制长数据
- excel - 在Excel VBA中删除包含“xxx”的单元格(行)的优雅方法
- java - 春季启动构建失败
- c - 在终端window10中运行一个简单的.c文件
- python - 如何将现有的虚拟环境导入 Python 中的新项目?
- postgresql - Postgresql - 处理来自被调用过程的异常