替换列表

时间:2017-11-11 13:56:44

标签: python list dictionary

在我的一个编程作业范围内,我不得不创造一种战舰游戏。

其中一条指令必须创建一个代表潜艇的清单,这个清单将每个潜艇都包含在一个字典中,潜艇在棋盘游戏中的位置以及健康指向潜艇。

我还提到我必须用循环创建它,这样潜艇的数量可以随意改变:

nb_subs = 4

submarines = []

for sub_id in range (nb_subs):
    submarines.append({'sub_' + str(sub_id) : {'position':str(rand(0,4)) + str(rand(0,4)) , 'life':2}})

此代码正常工作,您可以看到位置由一个字符串表示,例如'00','14'等,以便可以通过选择字符串的索引来获取,就像这样:

submarines[0]['sub_0']['position'][0]

这样我就得到了潜艇的“横坐标”。

但关键是我不知道如何只修改潜水艇位置的“横坐标”或“纵坐标”。

我试着修改其中一艘潜艇的“横坐标”:

submarines[0]['sub_0']['position'][0] = str(int(submarines[0]['sub_0']['position'][0])+1)

但我最终收到此错误消息:

TypeError                                 Traceback (most recent call last)
<ipython-input-17-670be0bd7cb8> in <module>()
----> 1 submarines[0]['sub_0']['position'][0] = '5'

TypeError: 'str' object does not support item assignment

我知道我可以像这样修改整个字符串:

submarines[0]['sub_0']['position'] = '22'

但重点是回到对应于关键字'position'的字符串中包含的元素[0]。

有人可以帮我吗?

谢谢!

0 个答案:

没有答案