【发布时间】:2016-10-01 12:41:04
【问题描述】:
我觉得我正在把一座鼹鼠山变成一座山,但我想不出或不知道有更好的方法来做到这一点。
简而言之,我有一个列表,如下所示:
[ [4.54323, 5.4325], [7.235, 3.67543], [9.342543, 1.65323] ]
并且我需要一个如下所示的列表:
[ {lat: 4.54323, lng: 5.4325}, {lat: 7.235, lng: 3.67543}, {lat: 9.342543, lng: 1.65323} ]
我做了一些我并不引以为豪的事情,并最终得到了:
[ '{lat: 4.54323, lng: 5.4325}', '{lat: 7.235, lng: 3.67543}', '{lat: 9.342543, lng: 1.65323}' ]
是的,一些字符串操作,现在我被字符串列表卡住。然后我尝试评估所述列表中的每个元素,但不出所料地得到了NameError: name 'lat' is not defined.。
所以这更像是一个多部分的问题。有没有办法在不将元素转换为字符串和替换字符的情况下获得我想要的东西?或者,我可以评估或将这些字符串转换为它们应该是的任何数据类型(我认为是集合)。这个变量只会被发送到 HTML 文件中,以使用 Jinja 替换变量。所以其实不需要python理解,(我用的是2.7.x)。
编辑:这是我正在使用的方法,由于工作原因,我正在积极尝试不分享那么多代码,抱歉。在该方法的生命周期中也进行了许多不同的尝试。所以有些线条可能看起来很奇怪。
evalledCoords = []
def make_points(coords):
if(coords):
for x in range(0, len(coords)):
# remove first element, not needed.
coords[x].pop(0)
coords[x] = str(coords[x]).replace("[", "{lat: ").replace(",", ", lng:").replace("]", "}")
# See outputs
print '\n', coords[x]
print 'evalled coords', evalledCoords.append(eval(coords[x]))
return coords
【问题讨论】:
-
请显示您的最新代码,以便读者更好地了解您在哪里犯了错误。
-
刚刚在编辑中添加了一些相关代码。不幸的是,我无法分享我想要的任何东西。在我说'......这就是我最终得到的'的地方,它们是字符串。在给出的示例中,该 1 个列表中有 3 个字符串。
标签: python string list set jinja2