64

変換方法

[(1,), (2,), (3,)]

[1, 2, 3]
4

11 に答える 11

91

単純なリスト内包表記の使用:

e = [(1,), (2,), (3,)]
[i[0] for i in e]

あなたに与えるでしょう:

[1, 2, 3]
于 2012-06-07T23:26:39.463 に答える
63

@Levonのソリューションは、あなたのケースに完全に適合します。

ちなみに、タプルに可変数の要素がある場合は、chainfromを使用することもできますitertools

>>> a = [(1, ), (2, 3), (4, 5, 6)]
>>> from itertools import chain
>>> list(chain(a))
[(1,), (2, 3), (4, 5, 6)]
>>> list(chain(*a))
[1, 2, 3, 4, 5, 6]
>>> list(chain.from_iterable(a)) # More efficient version than unpacking
[1, 2, 3, 4, 5, 6]
于 2012-06-07T23:29:32.773 に答える
30

タプルに可変数の要素を含めることができる場合の別の方法を次に示します。

>>> a = [(1,), (2, 3), (4, 5, 6)]
>>> [x for t in a for x in t]
[1, 2, 3, 4, 5, 6]

これは基本的に、次のループの短縮形です。

result = []
for t in a:
    for x in t:
        result.append(x)
于 2012-06-07T23:40:43.577 に答える
7
>>> a = [(1,), (2,), (3,)]
>>> zip(*a)[0]
(1, 2, 3)

リストの場合:

>>> list(zip(*a)[0])
[1, 2, 3]
于 2012-06-07T23:37:34.703 に答える
6

sum次のように関数を使用することもできます。

e = [(1,), (2,), (3,)] 
e_list = list(sum(e, ()))

また、リストのリストでも機能して単一のリストに変換しますが、次のように使用する必要があります。

e = [[1, 2], [3, 4], [5, 6]]
e_list = list(sum(e, []))

これにより、[1, 2, 3, 4, 5, 6]

于 2013-08-23T17:29:15.740 に答える
4

... for... in...によって別のリストからリストを抽出する方法は常にあります。この場合、次のようになります。

[i[0] for i in e]

于 2012-12-19T10:35:41.173 に答える
3

リスト内包表記でタプルをアンパックすることもできます。

e = [(1,), (2,), (3,)]
[i for (i,) in e]

それでも与えます:

[1, 2, 3]
于 2012-06-14T20:42:41.807 に答える
2

ワンライナーよ!

list(*zip(*[(1,), (2,), (3,)]))
于 2015-11-27T07:32:45.983 に答える