我制作了一个程序,我还在努力,但是当我制作一个二维数组时,我已经注意到了这一点:
a = [["empty room :(" for x in range(-1000, 1001, 1)] for x in range(-1000, 1001, 1)]
我可以访问从-2000到2000而不是-1000到1000的值,我做错了什么以及如何解决它?谢谢!
整个代码是:
a = [["empty room :(" for x in range(-500, 501, 1)] for x in range(-500, 501, 1)]
a[0][1]="hi"
print("Enter 'read' for read and enter 'write' for write.")
print("Enter 'stop' to stop this program.")
prom = "empty"
while (prom != "stop"):
prom = input("Read or Write?: ")
if (prom == 'read'):
x = int(input('Enter x value for room: '))
y = int(input('Enter y value for room: '))
print(str(a[x][y]))
elif (prom == 'write'):
x = int(input('Enter x value for room: '))
y = int(input('Enter y value for room: '))
mes = input('Enter message for room: ')
a[x][y] = mes
elif (prom == 'stop'):
break
else:
print("Error: enter 'read', 'write', or 'stop'.")
答案 0 :(得分:0)
这不是range()
工作方式的原因。
这是因为列表索引(当你使用它时)的方式有效。使用负数作为索引从列表末尾向后计数。
x[-1]
返回列表中的最后一项。 x[-2001]
将从列表末尾向后计数,并返回第一个项目。
您的列表长度为2001项,因此x[-2001]
与x[0]
相同。亲自试试吧。