2016-08-10 17 views
0

リストのリストのタプルをリストに変換しようとしています。より正確には、リスト内のタプルを削除したいだけです。元のデータセットは、私がachiveeしたい何タプルをリストのリストに変換する

collections = [[None], [(u'John Demsey ', u' Cornelia Guest')], [(u'Andres White ', u' Margherita Missoni')], [(u'Bibi Monahan, Tuki Br', u'o, ')], [(u'W$ 

のように見えるです:それでも

collections = [[None], [u'John Demsey ', u' Cornelia Guest'], [u'Andres White ', u' Margherita Missoni']...] 

、次のコードで、私は私の目標を達成することができません。

def conv(): 
    for i in range(len(collections)): 
     if collections[i] != None: 
      collections[i] = list(collections[i]) 
     else: 
      collections[i][0] = list(collections[i][0]) 
    return collections[i] 

conv = conv() 
print(conv) 

コードでは、タプルをリストに変換しようとしました。しかし、これは動作しません。誰かが私が問題を特定し、これを訂正するのを手助けすることができますか?ありがとうございました!!

答えて

1

はむしろitertoolschainのために行くとリスト内包:

from itertools import chain 

[list(i) if i else [i] for i in chain.from_iterable(collections)] 

#Out[110]: 
#[[None], 
# [u'John Demsey ', u' Cornelia Guest'], 
# [u'Andres White ', u' Margherita Missoni']] 
+0

ありがとうございました。 – achimneyswallow

2

、このようにそれを行うようにしてください:あなたのコードで

def conv(): 
    return [list(c[0]) if isinstance(c[0], tuple) else c for c in collections] 

あなたはまた、リストのちょうど最後の要素を返します。

関連する問題