将字符串放在Python列表中

时间:2016-03-30 21:01:23

标签: python

我正在尝试为我正在编码的基于文本的RPG制作动态地图,所以我尝试了这个数组:

landscape = [['-,-,-,-,-,-,-,-,-,-,-,-,-,-,X']
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-']
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-']
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-']
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-']
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-']
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-']
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-']
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-']
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-']
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-']
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-']
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-']
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-']
['O,-,-,-,-,-,-,-,-,-,-,-,-,-,-']]

但是,它给出了一条错误消息,指出str对象不能放在数组中。有办法解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

你有一个简单的拼写错误。通过不用逗号分隔内部数组,您实际上索引到您编写的第一个数组,并且字符串不能是索引。写这个的正确方法是:

landscape = [['-,-,-,-,-,-,-,-,-,-,-,-,-,-,X'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['O,-,-,-,-,-,-,-,-,-,-,-,-,-,-']]

我猜你也希望这些字符串看起来像'-', '-'等,而不是一个带逗号的字符串。

更简单的方法:

Python还可以让你"倍增"字符串生成一定长度的列表,如下所示:

['-'] * 5

生成列表['-', '-', '-', '-', '-']

所以你可以像list comprehension这样使用它:

[['-'] * 5 for _ in range(5)]

生产:

[['-', '-', '-', '-', '-'], ['-', '-', '-', '-', '-'], ['-', '-', '-', '-', '-'], ['-', '-', '-', '-', '-'], ['-', '-', '-', '-', '-']]

答案 1 :(得分:0)

landscape = [['-,-,-,-,-,-,-,-,-,-,-,-,-,-,X'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['-,-,-,-,-,-,-,-,-,-,-,-,-,-,-'],
['O,-,-,-,-,-,-,-,-,-,-,-,-,-,-']]

你忘了用逗号分隔数组的元素(,) 使用上面的代码