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

如何将元组转换为不带逗号和括号的值字符串

包沈义
2023-03-14
问题内容

我通过使用以下命令从sql查询中检索数据

bounds = cursor.fetchone()

我得到一个元组,如:

(34.2424, -64.2344, 76.3534, 45.2344)

我想要一个像 34.2424 -64.2344 76.3534 45.2344

是否存在可以做到这一点的功能?


问题答案:

用途str.join()

>>> mystring = ' '.join(map(str, (34.2424, -64.2344, 76.3534, 45.2344)))
>>> print mystring
34.2424 -64.2344 76.3534 45.2344

您必须在这里使用map(它将元组中的所有项目都转换为字符串),因为否则您将获得TypeError

关于map()功能的一些说明:

map(str, (34.2424, -64.2344, 76.3534, 45.2344)等价于[str(i) for i in (34.2424, -64.2344, 76.3534, 45.2344)]

它比使用列表理解要快一点:

$ python -m timeit "map(str, (34.2424, -64.2344, 76.3534, 45.2344))"
1000000 loops, best of 3: 1.93 usec per loop
$ python -m timeit "[str(i) for i in (34.2424, -64.2344, 76.3534, 45.2344)]"
100000 loops, best of 3: 2.02 usec per loop

如该答案的注释所示,str.join()可以使用生成器而不是列表。通常,这会更快,但是在这种情况下,它会 更慢

如果我要这样做:

' '.join(itertools.imap(str, (34.2424, -64.2344, 76.3534, 45.2344)))

这将比使用慢map()。区别在于,imap()返回生成器,而map()返回列表(在python 3中,它返回生成器)

如果我要这样做:

''.join(str(i) for i in (34.2424, -64.2344, 76.3534, 45.2344))

由于这里说明的原因,这比将 列表
理解放在方括号中要慢。

在您的(OP)情况下,这两种选择都不是很重要,因为在这里性能似乎并不重要。但是,如果您曾经处理过大量的浮点/整数元组,那么现在您知道该如何使用才能获得最大的效率:)。



 类似资料:
  • 问题内容: 如何将字符串转换为JavaScript数组? 看一下代码: 在这种情况下,将弹出一个。当它是一个数组时,它会弹出一个,而当它被调用时,它应该弹出一个。 是否有机会将此类字符串转换为JavaScript数组? 问题答案: 对于像这样的简单数组成员,可以使用。 这为您提供了一个数字数组。 如果使用,则会得到一个字符串数组。 请注意,这将限制您使用受支持的数据类型。如果您需要类似或函数的值,

  • 我试图写一个程序,读取一串文本,并打印文本中的所有直方图及其频率。 输入示例: 相应的输出: 当我尝试这个示例输入时,它输出 我该如何修复它,使它不会有括号和逗号?

  • 问题内容: 在Python中,有什么干净而优雅的方法可以将字符串“ 1,374”或“ 21,000,000”转换为int值(如1374或21000000)? 问题答案: 这实际上取决于您从哪里获得电话号码。 如果您尝试转换的数字来自用户输入,请使用。这样,将以与用户设置以及期望值一致的方式来解析数字。 另一方面,如果您从文件中读取文件,则该文件始终使用相同的格式,使用方式或取决于您的情况。这不仅易

  • 问题内容: 使用Swift,我试图获取应用程序文本视图中输入的数字列表,并通过为成绩计算器提取每个数字来创建此列表的总和。而且,用户输入的值量每次都会更改。一个例子如下所示: 字符串:98,99,97,96 …试图获取:98 + 99 + 97 + 96 … 请帮忙!谢谢 问题答案: 使用打破了逗号分隔的字符串。 使用前,每一个元素后删除空格 使用每个元素转换为整数。 使用(以前称为)删除所有无法

  • 问题内容: 我有一个逗号分隔的字符串,我想将其转换为数组,因此可以循环遍历它。 有内置的功能吗? 例如,我有这个字符串 现在我想用逗号将其分割,然后将其存储在数组中。 问题答案: MDN参考,主要用于参数可能发生的意外行为。(提示:出来的不是。)