【发布时间】:2016-07-20 04:46:04
【问题描述】:
我是学习python的初学者。 我对这个 for 循环有疑问。
我正在尝试搜索 pc 循环以跟踪玩家(人类)的移动并预测井字游戏中的下一步移动。
因此,我创建了一个 for 循环来附加玩家(人类)做出的动作,但发生了一些奇怪的事情
lst = [ [ "X",[], [] ],
[ [], "X", [] ],
[ [], "X", [] ] ]
temp_lst = []
for i in lst:
lst_1 = []
for j in i:
if j == "X":
lst_1.append(lst.index(i))
print(lst.index(i))
lst_1.append(i.index(j))
print(i.index(j))
temp_lst.append(lst_1)
print (temp_lst)
我的 IDLE 上的结果是:
0
0
1
1
1
1
[[0, 0], [1, 1], [1, 1]]
请注意,“X”在中间的位置和“X”在最后一个列表中的位置是相同的,而不是相同的。这是我的问题。请注意,当我将 lst 更改为:
lst = [ [ "X",[], [] ],
[ [], "X", [] ],
[ [], [], "X" ] ]
result: [[0, 0], [1, 1], [2, 2]]
python的结果显示了最后一个“X”的正确位置,但在前一个中它给出了最后一个“X”的强位置
请帮忙谢谢
【问题讨论】:
-
最后一次迭代的预期输出是 [1,2]?
-
您的代码缩进错误。这在 python 中很重要,并且确实会改变你的代码输出。你应该纠正它。