2017-11-29 19 views
-2

内の括弧を削除します。私はタプルのリストを持っているタプル

listoftuples = [('elementone', 'elementtwo', 'elementthree')(.... 

がどのように私はそれらの余分括弧を削除することができますよう

listoftuples = [(('elementone', 'elementtwo'), 'elementthree')(.... 

は今、私はこのリストを出力したいですか? 私はそれらを取り除こうとしましたが、それは動作しません。

+1

カッコを削除するとは思わないでください。あなたは文字列を操作していません。 – chepner

+0

あなたのオブジェクトが何であるかは不明です。あなたの構文は間違っています '' elementthree ')(.... ' –

+0

またはその1つ:https://stackoverflow.com/questions/47431752/how-to-flatten-a-list-of-nested-tuples-in- python。それは3つのdupeリンクが行うすべてを置くことは非常に不明です –

答えて

0

深さが2である場合、あなたはitertoolsを使用することができます。

import itertools 
listoftuples = [(('elementone', 'elementtwo'), 'elementthree')] 
final_list = [tuple(itertools.chain.from_iterable([i] if not isinstance(i, tuple) else i for i in b)) for b in listoftuples] 

出力:

[('elementone', 'elementtwo', 'elementthree')] 

しかし、任意の深さで、それが再帰を使用するのが最善です:

def flatten(s): 
    if not isinstance(s, tuple): 
     yield s 
    else: 
     for b in s: 
      for i in flatten(b): 
       yield i 


listoftuples = [(('elementone', 'elementtwo'), 'elementthree')] 
final_list = map(tuple, map(flatten, listoftuples)) 

出力:

[('elementone', 'elementtwo', 'elementthree')] 
関連する問題