当前位置: 首页 > 面试题库 >

在Python中将字符串从拆分函数转换为int的有效方法

鲍永春
2023-03-14
问题内容

我有以下格式的数据字符串:xpos-ypos-
zoom(即8743-12083-15),我想拆分并存储在变量xpos,ypos和zoom中。由于我需要对这些数字进行一些计算,因此我想从一开始就将它们转换为整数。当前,我执行此操作的方式是使用以下代码:

file = '8743-12083-15'
xval, yval, zoom  = file.split("-")
xval = int(xval)
yval = int(yval)

在我看来,应该有一种更有效的方法。有任何想法吗?


问题答案:

我对列表理解的最初建议。

test = '8743-12083-15'
lst_int = [int(x) for x in test.split("-")]

编辑:

至于哪个是最有效的(cpu-cyclewise),则应始终对其进行测试。在我的Python 2.6安装上进行的一些快速测试表明,这里的 映射
可能是最有效的候选者(从值分隔的字符串中构建整数列表)。请注意,差异是如此之小,以至于在您进行数百万次操作之前这并不重要(这是一个公认的瓶颈)…

def v1():
 return [int(x) for x in '8743-12083-15'.split('-')]

def v2():
 return map(int, '8743-12083-15'.split('-'))

import timeit
print "v1", timeit.Timer('v1()', 'from __main__ import v1').timeit(500000)
print "v2", timeit.Timer('v2()', 'from __main__ import v2').timeit(500000)

> output v1 3.73336911201 
> output v2 3.44717001915


 类似资料:
  • 所以我尝试将int转换为string,然后再转换为charAt(0)、charAt(1)和charAt(2)。我这样做是为了把3位数的整数拆分成3个不同的整数。然后我想把这些整数转换成字符串。 我想做的是从101及以上的数字中提取并用文字打印出来。我有数百种、十种和一种方法。我试着把第一个整数应用到百分法,第二个整数应用到十分法,第三个整数应用到一分法。 这是一种 现在我正试着打印单词,我发现了3

  • 问题内容: 我正在尝试将一组字符串从txt文件转换为列表中的int。我能够找到一个不错的代码片段来返回每一行,然后我尝试将其转换为int。问题是数字采用科学计数法,并且出现以下错误:ValueError:int()的无效文字,基数为10:‘3.404788e-001’。 这是我一直在处理的代码 问题答案: 将或用作浮点数,具体取决于保持精度对您的重要性。 将数字存储在机器精度的IEEE浮点数中,同

  • 问题内容: 在Python中,我想将列表中的所有字符串转换为整数。 所以,如果我有: 我该如何做: 问题答案: 使用功能(在Python 2.x中): 在Python 3中,您需要将结果从转换为列表:

  • 注意:这个问题包含不建议使用的前1.0代码!不过,答案是正确的。 要在Rust中将转换为,我可以执行以下操作: 我知道如何将转换为的唯一方法是获取其中的一个片段,然后像这样使用: 有没有办法直接将转换为?

  • 我正在尝试如何在Swift中将转换为。 我想出了一个变通方法,使用但是我想知道如何在Swift中完成这一切。

  • 我想将字符串转换为int。 例如: 如果是,则应将其转换为与相同的 为什么我需要这个。因为我要将unicode int转换为表情符号,所以我使用的是这段代码。 你能让我知道我该怎么做吗?