60858
pythonのスライスとソートについて質問です。

パターン1の変数aとパターン2の変数dataで同じ出力が出ると思うのですが、  
出力が意図していないものなので、なぜこのような出力なのかご教授お願いしたいです。

パターン2でスライスしたものを.sort()すると、スライスしたものがソートされておりません。

パターン1

```

    data = [6,10,3,4,5,6,7,8]
    a = data[1:8:2]
    a.sort()
    print(a)
    
```

出力

```

    [4, 6, 8, 10]
    
```

パターン2

```

    data = [6,10,3,4,5,6,7,8]
    data[1:8:2].sort()
    print(data)
    
```

出力

```

    [6, 10, 3, 4, 5, 6, 7, 8]
    
```
CC BY-SA 4.0
2019-11-26T07:03:15.550
60851
2019-11-27T13:39:10.077
2019-11-27T01:52:11.263
29536
29536
question
python
pythonのスライスとソートすると意図しない出力が出る
スライス結果のコピーをソートしているからです。

書かれているコード

```

    data[1:8:2].sort()
    print(data)
    
```

これは以下と同義です

```

    a = data[1:8:2]
    a.sort()
    print(data)
    
```

`data[1:8:2]` はスライス結果を返しますが、 `data` そのものは変更しません。
CC BY-SA 4.0
2019-11-26T08:38:12.020
60858
2019-11-26T08:56:27.977
2019-11-26T08:56:27.977
3060
806
60851
answer
スライスは元のdataとは別の新しいインスタンスになります。  
sort()は新しいインスタンスに作用するため、dataそのものは何も変わりません。
CC BY-SA 4.0
2019-11-26T08:42:15.987
60859
2019-11-27T13:39:10.077
2019-11-27T13:39:10.077
35558
35558
60851
answer