该函数应接受三条信息:一个值,以字符串形式给出,一行和一个索引,我需要将其作为元组给出。这本词典是一个不对称的游戏板。 change()函数的目的是在给定"位置"时更改存储在字典键中的列表中包含的字符串的值。 (行作为字符串,列作为索引/整数,可以组合为元组),更改"值"在那个指数。这是我的代码:
board = dict()
board['a'] = ['t']
board['b'] = ['0','t','0','0','t','0']
board['c'] = ['0','1','2','3','4','5']
board['d'] = ['0','0','0','0','0','0']
board['e'] = ['0','0','0','0']
print board['a'][0]
def change(value,position):
board[position()]=value
change('G',('c', 4))
print board['c'][3]
我想我应该如何称呼它,但我无法弄清楚如何使函数更改()。我收到了错误"类型错误:'元组'对象不可调用"。我是初学者,所以我非常感谢任何帮助。我试图研究这个问题,但到目前为止我还没有找到答案。谢谢!
答案 0 :(得分:3)
board[position()]=value
而是试试这个 -
board[position[0]][position[1]]=value
同样,要打印更改后的值 -
print board['c'][4]
答案 1 :(得分:0)
写x()
表示您正在调用 x。例如,change('G',('c', 4))
表示您使用参数change
和G
调用了函数('c', 4)
。您可以这样做,因为change
是一个函数,如语句def change...
所示。函数是最常见的可调用对象。元组不可调用。也就是说,你不能打电话给他们。如果x()
是元组,则无法编写x
。这就是错误告诉你的。
现在,你在哪里做到了这一点?事实上,错误也应该明确告诉你。不是你向我们展示的错误的一部分,而是完整的东西。你应该看到这样的事情:
Traceback (most recent call last):
File "t.py", line 14, in <module>
change('G',('c', 4))
File "t.py", line 12, in change
board[position()]=value
TypeError: 'tuple' object is not callable
这是一个回溯,意味着它会追溯导致此错误的调用序列。它告诉我们它所处的顺序。这意味着链中的第一个调用位于顶部,你可以像故事一样阅读它。您在程序的第14行调用了change('G',('c', 4))
。从定义def change(value,position)
,这意味着value = 'G'
,更重要的是position = ('c', 4)
,一个元组。这导致board[position()]=value
。请注意position()
。