2016-04-07 16 views

答えて

1

これらは句読点ではありません。それらはタプルです。

('one element') 

が文字列(すなわち、「一つの要素」)として扱われることになるので、唯一の要素を含むタプルを

('one element',) 

として書き込まれます。

それではあなたはどうなることはまず、古いリスト内のすべてのタプルの項目だけから新しいリストを作成する

new_list = [item[0] for item in old_list] 

を使用することです。

+0

。 downvoterは説明できますか? __編集:__うーん...そして今はそれがなくなり、私の答えは謎のダウン投票をしています。奇妙な。 – ShadowRanger

+0

@ShadowRanger:あなたのダウンボートは消えました。私は次になりますか? – zondo

1

listtupleを開梱する必要があります。簡単な方法は、listの理解度を使用して新しいリストを作成することです。

mylist = [x for x, in mylist] 

x,は、各tupleから単一の項目を開梱され、その後、あなたは直接アンパックxを作り出します。

0

これは本当に句読点ではありません。リストの各項目は、単一の要素を持つタプルです。最初は、そのリストの内包ある

from itertools import chain 

newlist = list(chain.from_iterable(oldlist)) 

:あなたは、必ずしもこれを行う、ということがわからない場合は

newlist = [x[0] for x in oldlist] 

:あなたは、各項目は、常に長さ1のタプルであることがわかっている場合は、これを行います各タプルの最初の項目のリストを作成します。 2番目はタプルの連鎖を作成し(1つにマージして)、その結果をリストに変換します。

+0

'sum'を使用すると、潜在的に膨大な数の中間値が作成され、累積された' tuple'が連続して生成されます。 1つのレイヤーをアンラップしようとしているだけの場合は、 'newlist = list(itertools.chain.from_iterable(oldlist))'(通常は 'itertools import chain'から使用時の長さを少し短くする)これはおおよそ 'O(n^2)'ではなく 'O(n)'です。 – ShadowRanger

+0

@ShadowRanger:良い点。編集されました。 – zondo

0

ただ、単一レベルのリストにタプルを平ら:私は誰かがあなたの答えをdownvoted理由はわかりません

>>> li=[('Bread',), ('Milk',)] 
>>> [e for t in li for e in t] 
['Bread', 'Milk'] 
関連する問題