前の質問に続いて、リスト項目をタプルにグループ化する方法は?
たとえば、タプルのリストがある場合
a = [(1,3),(5,4)]
タプルをアンパックして 1 つのリストに再フォーマットするにはどうすればよいですか
b = [1,3,5,4]
これもiter
機能に関係していると思いますが、どうすればいいのかわかりません。教えてください。
前の質問に続いて、リスト項目をタプルにグループ化する方法は?
たとえば、タプルのリストがある場合
a = [(1,3),(5,4)]
タプルをアンパックして 1 つのリストに再フォーマットするにはどうすればよいですか
b = [1,3,5,4]
これもiter
機能に関係していると思いますが、どうすればいいのかわかりません。教えてください。
b = [i for sub in a for i in sub]
それはトリックを行います。
In [11]: list(itertools.chain(*a))
Out[11]: [1, 3, 5, 4]
繰り返す必要がある場合は、呼び出し1, 3, 5, 4
を取り除くことができます。list()
リスト a を繰り返し処理し、タプルを展開します。
l = []
for x,y in a:
l.append(x)
l.append(y)
別の方法:
a = [(1,3),(5,4)]
b = []
for i in a:
for j in i:
b.append(j)
print b
これは、リスト(a)tho内のタプルのみを処理します。次のような緩い変数も解析する場合は、if-elseステートメントを追加する必要があります。
a = [(1,3),(5,4), 23, [21, 22], {'somevalue'}]
b = []
for i in a:
if type(i) == (tuple) or type(i) == (list) or type(i) == (set):
for j in i:
b.append(j)
else:
b.append(i)
print b
import itertools
b = [i for i in itertools.chain(*[(1,3),(5,4)])]