制作间隔为1度的经度列表

时间:2017-10-31 03:55:36

标签: python

我想列出这样的经度列表:

['0','1E','2E','3E','4E',....,'179E','180','179W','178W',......,'1W','0']

我可以通过以下方式实现这一目标:

['0'] + [str(i)+'E' for i in range(1,180)] + ['180'] + [str(i)+'W' for i in range(179,0,-1)] + ['0']

但是,我想知道还有更干净的方法吗?

非常感谢

1 个答案:

答案 0 :(得分:0)

你可以这样做,但我怀疑它更优雅:

[str(degree % 360) if degree == 0 or degree == 360 or degree == 180 else str(degree) + 'E' if degree < 180 else str(360 - degree) + 'W' for degree in range(361)]

我个人更喜欢这个:

longitudes = []   # ['0','1E','2E','3E',...,'179E','180','179W',...,'1W','0']
for degree in range(361):
    if degree == 0 or degree == 360 or degree == 180:
        longitudes.append(str(degree % 360))
    elif degree < 180:
        longitudes.append(str(degree) + 'E')
    else:
        longitudes.append(str(360 - degree) + 'W')

它更笨重,但对于随意的读者来说,这个代码正在做什么显而易见。