我正在尝试为我正在编码的基于文本的RPG制作动态地图,所以我尝试了这个数组:
landscape = [['-,-,-,-,-,-,-,-,-,-,-,-,-,-,X']
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-']
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-']
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-']
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-']
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-']
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-']
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-']
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-']
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-']
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-']
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-']
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-']
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-']
['O,-,-,-,-,-,-,-,-,-,-,-,-,-,-']]
但是,它给出了一条错误消息,指出str对象不能放在数组中。有办法解决这个问题吗?
答案 0 :(得分:2)
你有一个简单的拼写错误。通过不用逗号分隔内部数组,您实际上索引到您编写的第一个数组,并且字符串不能是索引。写这个的正确方法是:
landscape = [['-,-,-,-,-,-,-,-,-,-,-,-,-,-,X'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['O,-,-,-,-,-,-,-,-,-,-,-,-,-,-']]
我猜你也希望这些字符串看起来像'-', '-'
等,而不是一个带逗号的字符串。
Python还可以让你"倍增"字符串生成一定长度的列表,如下所示:
['-'] * 5
生成列表['-', '-', '-', '-', '-']
所以你可以像list comprehension这样使用它:
[['-'] * 5 for _ in range(5)]
生产:
[['-', '-', '-', '-', '-'], ['-', '-', '-', '-', '-'], ['-', '-', '-', '-', '-'], ['-', '-', '-', '-', '-'], ['-', '-', '-', '-', '-']]
答案 1 :(得分:0)
landscape = [['-,-,-,-,-,-,-,-,-,-,-,-,-,-,X'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['O,-,-,-,-,-,-,-,-,-,-,-,-,-,-']]
你忘了用逗号分隔数组的元素(,) 使用上面的代码