2016-08-15 7 views
0

を延長しないのpythonを拡張:は、私が値をリスト<code>indexlist</code>を持って正しく

[8, 11, 4, 3]

これは、関数の途中にあるので、他の関連する値がi=0endsorted = sorted(indexlist[i+1:])

あるそれから私が呼びますを返し

indexlist[:i+1].extend(endsorted)

[8, 11, 4, 3]

[8, 3, 4, 11]を返さないでください。私はindexlist[:i+1]をチェックしました。これは[8]です。endsorted[3, 4, 11]です。そのコードの

+1

いいえ、それはいけない(あなたが新しいオブジェクトを取得していない元のリストをスライスすると)私は右のオブジェクトを拡張し、それだけではなくコピーするので

あなたがどこにも保存していないリスト(スライス)の一部のこれは伸びやスライスのためではありません。 –

+0

あなたができることは 'some_list [2:3] = [2,4,6,8]'のようにスライスを直接設定しますが、それは私が想像することができるほとんどの文脈で読みにくいです。 –

+0

あなたは正しいです、ありがとう –

答えて

0

ルック:

# Init 
indexlist = [8, 11, 4, 3] 

# Your setup 
i = 0 
endsorted = sorted(indexlist[i+1:]) 

# Extending the right list object 
new_index_list = indexlist[:i+1] 
new_index_list.extend(endsorted) 

new_index_list値が[8, 3, 4, 11]です。あなたがコピーを拡張しているので、

関連する問題