python listについての質問


pythonを始めたての初心者です。

[code]

    list=['a','i','u','e','o']
    list[1:4]=['a']
    
[/code]

とした場合

[code]

    ['a','a','a','e','o']
    
[/code]

となると思ったのですが

[code]

    ['a','a','o']
    
[/code]

長さが短くなってしまいました。  
何が違うのかご教示いただけるとありがたいです。




Pythonでの listは, 他の言語では dynamic-array などと呼ばれるものです  
動的にサイズが変動するので, 質問にある動作が普通の動作です  
参考:  
[データ構造:リスト型について](https://docs.python.org/ja/3/tutorial/datastructures.html)

長さを固定にする場合は, そのようなデータ構造を選んで使用することになります

[code]

    import numpy as np
    arr = np.array(['a','b','c','d','e'])
    arr[1:4] = 'a'
    
    # array(['a', 'a', 'a', 'a', 'e'], dtype='<U1')
    
[/code]

標準パッケージだと, (もしかすると) `array` で可能かもしれない

* * *

あと `list` や `dict` など, Pythonの基本データ型と同じ名前は使用しないほうがよいでしょう  
(使うならたとえば `lst` `dct` など, 違うものに)

