2016-03-24 1 views
0

私はPythonで、次のリストを持っている:整理するため

[(0.12156862745098039, 0.4666666666666667, 0.7058823529411765), (1.0, 0.4980392156862745, 0.054901960784313725), (0.17254901960784313, 0.6274509803921569, 0.17254901960784313), (0.8392156862745098, 0.15294117647058825, 0.1568627450980392), (0.5803921568627451, 0.403921568627451, 0.7411764705882353), (0.5490196078431373, 0.33725490196078434, 0.29411764705882354), (0.8901960784313725, 0.4666666666666667, 0.7607843137254902), (0.4980392156862745, 0.4980392156862745, 0.4980392156862745), (0.7372549019607844, 0.7411764705882353, 0.13333333333333333), (0.09019607843137255, 0.7450980392156863, 0.8117647058823529)] 

それは、複数のタプルを含んでいます。

偶数番目の要素がすべてリストの最後に移動するように並べ替えるにはどうすればよいですか?これにどのように接近するかは分かりません。

+0

期待どおりの結果が得られましたか? '[(0.12156862745098039、0.7058823529411765、0.4666666666666667)、(1.0、0.054901960784313725、0.4980392156862745)、...]'したいですか? – falsetru

+0

何が偶数番目の位置に数えられますか?すべてのタプルの2番目の要素を意味するだけですか?または、タプルの間で継続的に数えていますか? – zephyr

答えて

5

使用スライス、およびステップVAを指定する順序を逆だろう代替値の場合は2のルーグ。

l = [0,1,2,3,4,5,6] 
print(l[1::2] + l[::2]) 

結果は:

したがって、例えば

[1, 3, 5, 0, 2, 4, 6] 

すなわち、奇数インデックスですべての値は、インデックスが0からカウントと、偶数インデックスですべての値が続きます。

3

奇数要素のみを含むリストに偶数要素のみを含むリストを追加するだけで簡単に追加できます。偶数要素と奇数要素は、配列スライスを使用して抽出されます。

あなたが最初の要素でもあることを考えると(0、インデックスためには、さえある)

new = data[1::2] + data[::2] 

あなたが最初の要素が奇数であることを考慮すれば(それが1位のだと1が奇数です)、あなたは

data[::2] + data[1::2] 

例えば

data = [0,1,2,3,4,5] 
new = data[1::2] + data[::2] 

# [1, 3, 5, 0, 2, 4] 
+1

仲介リストを生成したくない場合は、itertoolsのchainとisliceを 'new = list(chain、islice(data、1、None、2)、islice(data、0、None、2) )) ') – Copperfield

関連する問題