2016-09-14 14 views
-2

のすべてのN番目の要素私は2つのリストを持っています。 N=3たとえば、望ましい結果は次のとおりです。スワップ二つのリスト

l1 = [1, 2, 'c', 4, 5, 'f'] 
l2 = ['a', 'b', 3, 'd', 'e', 6] 

として、私はforループとスワップを経由しておきN番目の要素をそれを行うことができます:私はへの道がはるかに効率的であるかどうかを知りたい

>>> for i in range(2,len(l1),3): 
...  l1[i], l2[i] = l2[i], l1[i] 
... 
>>> l1, l2 
([1, 2, 'c', 4, 5, 'f'], ['a', 'b', 3, 'd', 'e', 6]) 

それを達成する。 forループなしである可能性があります。

注:両方のリストの長さは同じです。

+0

。 'list slicing'と私はそれがかなり効率的だと思います。それでももっと良い方法があるかどうかを知りたいと思っています。質問を削除しないと、他の人に役立つ可能性があります。 –

答えて

1

として我々はlist slicingを経由してそれを達成することができます:私はちょうどを経由して、それを行うためのアイデアを得た

>>> l1[2::3], l2[2::3] = l2[2::3], l1[2::3] 
>>> l1, l2 
([1, 2, 'c', 4, 5, 'f'], ['a', 'b', 3, 'd', 'e', 6])