将字符串列表转换为包含整数的元组列表

时间:2011-07-02 01:52:01

标签: python performance

我正在将XML文件解析为坐标列表,这是我正在使用的代码行

nodes = [(int(x.text.strip().split(' ')[0]),int(x.text.strip().split(' ')[1])) for x in tree.getroot()[0]]

其中tree.getroot()将输出类似[“100 200”,“40 90”,...]的内容 我正在使用该代码去除空白,将其拆分为两个数字,并将它们转换为整数,但我不禁看着那些代码并认为它​​不能很快。 有关优化它的想法吗?

3 个答案:

答案 0 :(得分:0)

你应该总是问自己为什么你想要优化某些东西。如果你认为某些东西是快速的并且有时它甚至不重要,只要它足够快就没那么重要。

尽管如此,对于我能想到的大多数用例来说,这看起来还不错。

答案 1 :(得分:0)

不。但它可以简化很多。

>>> L = [' 1 2 ', '3 4 ']
>>> [tuple(int(y) for y in x.split()) for x in L]
[(1, 2), (3, 4)]

答案 2 :(得分:0)

只想感谢伊格纳西奥。需要类似的方法将坐标转换为元组列表。在我的情况下,格式为['412.47298,198.204',412.05498,198.597',...]。必须摆脱逗号并将其转换为float格式。

那是

some_float = ['412.47298,198.204', '412.05498,198.597'] 
[tuple(float(y) for y in x.split(",")) for x in some_float]
相关问题