とすれば
a = ['1', '2']
b = [['a', 'b'], ['c', 'd']]
これらのリストを次のような形式にするにはどうすればよい[('1', 'a', 'b'), ('2', 'c', 'd')]
ですか? b
それらをまとめて圧縮しようとしましたが、リストにしたくありません。どんな助けでも大歓迎です。
zip はまだあなたの友達です:
[tuple([x] + y) for x, y in zip(a, b)]
これを試して:
[tuple([x] + y) for x, y in zip(a,b)]
複雑にするのではなく、ネストされたタプル/リストをフラット化するのがより簡単なアプローチだと思います
>>> a = ['1', '2']
>>> b = [['a', 'b'], ['c', 'd']]
>>> zip(a, *b)
[('1', 'a', 'c'), ('2', 'b', 'd')]
リスト内包表記を使用したくない場合は、次のようにします。
zip(a, *(zip(*b)))
例えば:
a = ['1', '2']
b = [['a', 'b'], ['c', 'd']]
new_list = zip(a, *(zip(*b)))
結果:
>>> new_list
[('1', 'a', 'b'), ('2', 'c', 'd')]