2017-05-28 4 views
3

以下のコードで何が問題になっていますか?私は文字列のリストの2つのサブセットを交換しようとしています。Pythonを使用して同じリスト内のサブセットを交換する

>>> a = ['b', 'b', 'b', 'a', 'x', 'x', 'x', 'x', 'x', 'y'] 
['b', 'b', 'b', 'a', 'x', 'x', 'x', 'x', 'x', 'y'] 
>>> a[4:9] 
['x', 'x', 'x', 'x', 'x'] 
>>> a[9:10] 
['y'] 
>>> a[4:9], a[9:10] = a[9:10], a[4:9] 
>>> a 
['b', 'b', 'b', 'a', 'y', 'y', 'x', 'x', 'x', 'x', 'x'] 

答えて

1

あなたa[4:9], a[9:10] = a[9:10], a[4:9]

  1. a[4:9] = a[9:10]で実行される2つのコマンドを考えてみましょリストの第五、第六、第七、第八インデックスを取り、9番目のインデックスに置き換えます。 4 'x'は1 'y'になり、['b', 'b', 'b', 'a', 'y', 'y']になります(スワップの結果は最初のy、2番目は元のリストの最後です)
  2. a[9:10] = a[4:9]最後のインデックスはあなたのリスト、および(4構成されています。元のリストの9指標)を5「x」のためのスワップそれを['b', 'b', 'b', 'a', 'y', 'y', 'x', 'x', 'x', 'x', 'x']
-1

その結果、について説明@ClsForCookiesによって与えられ、ここだ、それはあなたが以下のようにリストをconcateできるソリューションです。

>>> a 
['b', 'b', 'b', 'a', 'x', 'x', 'x', 'x', 'x', 'y'] 
>>> a = a[:4] + a[9:10] + a[4:9] 
>>> a 
['b', 'b', 'b', 'a', 'y', 'x', 'x', 'x', 'x', 'x'] 
>>> 
関連する問題