我从sql查询和
中检索数据我有一个像元组的列表:
[(34.2424,), (-64.2344,) (76.3534,), (45.2344,)]
我希望有一个字符串(34.2424,-64.2344,76.3534,45.2344,)
是否存在能够做到这一点的功能?
注意每个元组末尾的','
......我很难摆脱它
答案 0 :(得分:2)
如果你使用的是Python 2.x,那么你可以使用:
>>> a = [(34.2424, -64.2344, 76.3534, 45.2344)]
>>> print ' '.join(map(str, a[0]))
'34.2424 -64.2344 76.3534 45.2344'
在Python 3.x或带有from __future__ import print_function
的Python 2.x中,您可以使用:
>>> print(*a[0])
34.2424 -64.2344 76.3534 45.2344
您似乎更新了输入数据的格式,因此:
每个元组的第一个元素......
>>> a = [(34.2424,), (-64.2344,), (76.3534,), (45.2344,)]
>>> print ' '.join(str(el[0]) for el in a)
34.2424 -64.2344 76.3534 45.2344
每个元组中有多个元素......
>>> from itertools import chain
>>> print(*chain.from_iterable(a))
34.2424 -64.2344 76.3534 45.2344
但是,你似乎只想要一个元组......
>>> tuple(chain.from_iterable(a))
(34.2424, -64.2344, 76.3534, 45.2344)
如果您愿意,可以使用str
将其设为str ...
答案 1 :(得分:1)
str.join()仅适用于字符串,因此必须先将它们转换为字符串。我可以写出来,但我刚刚在Python Cookbook(我最喜欢的新书)中读到了这个,所以我会link to that instead。 Beazley和Jones写道,要打印这样的元组,而不是将每个元素转换成字符串,你可以简单地做:
tup = (34.2424, -64.2344, 76.3534, 45.2344)
print(*tup)
当你的元组嵌套在一个列表中时,你可以遍历列表并进行打印,或者你可以在使用之前将列表弄平(并且在SO上有很多答案,而且在Python Cookbook,用于展平嵌套序列。)
编辑:我注意到标题已更改为将元组列表展平为元组的请求,这是一个展平嵌套序列请求。
我将链接到我上面提到的称为“展平嵌套序列”的Python Cookbook配方,并再次声明在此处有很多答案:“Flattening a Nested Sequence”
答案 2 :(得分:1)
抱歉,我误解了你的问题,但没有投票。
>>> data = [(34.2424,), (-64.2344,), (76.3534,), (45.2344,)]
>>> data_str = '(' + ', '.join(map(lambda x: str(x[0]), a)) + ')'
>>> print data_str
(34.2424, -64.2344, 76.3534, 45.2344)
>>>
或者只是展平列表并使用str
将结果元组作为字符串。
>>> data_str = str(sum(data, ()))
答案 3 :(得分:0)
" ".join(tuple)
假设您想要空间分隔符,我们会完成这项工作。
答案 4 :(得分:-2)
字符串的join
功能可以实现。
print " ".join(arrayOfValuesYouWantToJoinTogether)