2016-09-24 9 views
0

こんにちは私は2つのリストをサブリストに順次マージしようとしています。私はリストの解説やラムダの操作なしでこれが可能かどうか、私はまだそれらのアプローチで作業する方法を学んでいるのだろうかと思います。 lambda Sまたはリストの内包表記(問題がリストコンプとは何かわからない)を含まない別のリストのアイテムをネストされたリストにマージする

a = [0,1,2,3] 
b = [4,5,6,7] 

#desired output 
c = [0,4],[1,5],[2,6],[3,7] 
+0

あなたは 'c = [[0,4]、[1,5]、[2,6]、[3,7]]'を意味しますか? – Li357

+2

'[list(t)for t in zip(a、b)]'これは、必要に応じて、より冗長なループに簡単に変換されます。 –

+0

これは素晴らしいことです!答えに感謝します。非常に役立ちます。 –

答えて

1

アプローチはmapになりありがとう:

c = list(map(list, zip(a, b))) 

にこの最初のzip S一緒にリストを作成し、zipから生成されたタプルごとにlistインスタンスを作成し、mapとし、listにすべてをラップしてmapの内容をすべて返します。

print(c) 
[[0, 4], [1, 5], [2, 6], [3, 7]] 

これは、少なくとも私の見解では、同等の理解Johnがコメントで提供したものよりも理解しづらいものです。

0

初心者に適したソリューションです。

c = [] 
a = [0,1,2,3] 
b = [4,5,6,7] 

for i in range(min(len(a), len(b))): 
    c.append([a[i], b[i]]) # writing [a[i], b[i]] creates a new list 

print(c) 
関連する問題