用预定值替换列表中的项目

时间:2016-02-02 04:37:27

标签: python-2.7

假设我正在使用Python 2.7列表创建一个瓦片地图,它看起来像这样......:

tilemap = [
    [0, 0, 0, 0, 0],
    [1, 1, 1, 0, 0],
    [2, 2, 2, 1, 0],
    [2, 2, 1, 0, 0],
    [2, 1, 0, 0, 0]
]

...我分配了这样的变量......:

grass = 0
dirt = 1
water = 2

如何打印此列表,以便将变量显示为字符串,以便更完整地查看地图?

1 个答案:

答案 0 :(得分:0)

如果您可以将名称存储在数组中,则可以使用列表推导使其变得非常简单;

> tiletype = ['grass', 'dirt', 'water']

> [[tiletype[x] for x in y] for y in tilemap]

[['grass', 'grass', 'grass', 'grass', 'grass'], 
 ['dirt',  'dirt',  'dirt',  'grass', 'grass'], 
 ['water', 'water', 'water', 'dirt',  'grass'], 
 ['water', 'water', 'dirt',  'grass', 'grass'], 
 ['water', 'dirt',  'grass', 'grass', 'grass']]