我從SQL查詢檢索的數據Python的 - 如何變換元組的列表和元組
我有一個像元組的列表:
[(34.2424,), (-64.2344,) (76.3534,), (45.2344,)]
,我想有一個字符串像(34.2424,-64.2344,76.3534,45.2344,)
是否有一個函數可以做到這一點?
通知的','
在每個元組的結尾......我很難擺脫它
我從SQL查詢檢索的數據Python的 - 如何變換元組的列表和元組
我有一個像元組的列表:
[(34.2424,), (-64.2344,) (76.3534,), (45.2344,)]
,我想有一個字符串像(34.2424,-64.2344,76.3534,45.2344,)
是否有一個函數可以做到這一點?
通知的','
在每個元組的結尾......我很難擺脫它
如果你正在使用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
,使之成爲海峽,如果你想這樣...
「印刷」功能版本的竅門。 – kindall
" ".join(tuple)
將做的工作,假設你想空間分隔。
str.join()僅適用於字符串,因此您必須先將它們轉換爲字符串。我可以寫出來,但我只是在Python Cookbook(我最喜歡的書)中閱讀了一些關於此的內容,所以我會link to that instead。比茲利和瓊斯寫的打印這樣的元組,而不是轉向每一個成一個字符串,你可以簡單地做:
tup = (34.2424, -64.2344, 76.3534, 45.2344)
print(*tup)
當你的元組嵌套在列表裏面,你可以遍歷列表和這樣打印出來,或者你可以在使用它之前將列表平坦化(並且在SO上有很多答案,並且在Python Cookbook中有一個很好的解決嵌套序列的問題)。
編輯:我注意到標題改變爲一個請求,將元組列表平鋪到一個元組,這是一個扁平化嵌套序列請求。
我會鏈接到Python的菜譜食譜我上面提到所謂的「扁平化嵌套序列」,並再次聲明,有在SO很多答案在這個位置:「Flattening a Nested Sequence」
對不起,我誤解你問題,但沒有投票下來。
>>> 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,()))
請試着問 –
請否決前的小病人之前在谷歌搜索,我的問題還沒有完撰寫... –
你應該尋找蟒蛇答案爲「扁平化嵌套序列。」我也聯繫了一個很好的方法來解決我的問題。 – erewok