0

とすれば

a = ['1', '2']
b = [['a', 'b'], ['c', 'd']]

これらのリストを次のような形式にするにはどうすればよい[('1', 'a', 'b'), ('2', 'c', 'd')]ですか? bそれらをまとめて圧縮しようとしましたが、リストにしたくありません。どんな助けでも大歓迎です。

4

4 に答える 4

3

zip はまだあなたの友達です:

[tuple([x] + y) for x, y in zip(a, b)]
于 2012-12-04T03:32:46.350 に答える
1

これを試して:

[tuple([x] + y) for x, y in zip(a,b)]
于 2012-12-04T03:33:12.170 に答える
1

複雑にするのではなく、ネストされたタプル/リストをフラット化するのがより簡単なアプローチだと思います

>>> a = ['1', '2']
>>> b = [['a', 'b'], ['c', 'd']]
>>> zip(a, *b)
[('1', 'a', 'c'), ('2', 'b', 'd')]
于 2012-12-04T04:04:09.277 に答える
0

リスト内包表記を使用したくない場合は、次のようにします。

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')]
于 2012-12-04T03:54:26.173 に答える