gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 17:10:12 25 4
gpt4 key购买 nike

我使用 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))

由于解释的原因,它会比在 列表 周围加上括号要慢 here .


在您的(OP)案例中,任何一个选项都无关紧要,因为这里的性能似乎并不是什么大问题。但是,如果您曾经处理过大型 float /整数元组,那么现在您知道使用什么来获得最高效率了:)。

关于python - 如何将元组转换为不带逗号和括号的值字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17426386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com