我在python2编码。我需要创建一个名为change()的函数来更改字典中列表的值

时间:2016-04-17 08:47:19

标签: python dictionary tuples

该函数应接受三条信息:一个值,以字符串形式给出,一行和一个索引,我需要将其作为元组给出。这本词典是一个不对称的游戏板。 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]

我想我应该如何称呼它,但我无法弄清楚如何使函数更改()。我收到了错误"类型错误:'元组'对象不可调用"。我是初学者,所以我非常感谢任何帮助。我试图研究这个问题,但到目前为止我还没有找到答案。谢谢!

2 个答案:

答案 0 :(得分:3)

board[position()]=value

而是试试这个 -

board[position[0]][position[1]]=value

同样,要打印更改后的值 -

print board['c'][4]

答案 1 :(得分:0)

x()表示您正在调用 x。例如,change('G',('c', 4))表示您使用参数changeG调用了函数('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()