スライス

スライスを利用して要素を取り出す - snow-bellの日記

これは例のaが数値のリストなので添字と値とで混乱するんじゃないかと思うんだ。例を変えてみよう。

>>> a = range(5)
>>> a
[0, 1, 2, 3, 4]
>>> a[:3]
[0, 1, 2]
>>> a[3:]
[3, 4]

>>> a = 'abcde'
>>> a
'abcde'
>>> a[:3]
'abc'
>>> a[3:]
'de'

一つ目の例では0番目には0の数値が入っている。添字と値が同じ。で、[3:]とやると3番目以降(3以上の添字)の値が取れて、[:3]とやると3番目より手前(3未満の添字)の値が取れる。
二つ目の例でも値が文字に変わっただけでスライスの処理自体は同じ。0から始める数え方になれていないと3番目がどこなのかを勘違いしがちだけども(cじゃないよdだよ)、3番目の手前までと3番目以降とでわけられている。

a[1:3]というのは1以上3未満という意味だと教えてもらいました
a[3:4]というのも同様に3以上4未満なので=3の要素を返します
でも実際には3の要素を返す際は [a[3 と書くそうです

なので「a[3:4]は3の要素を返す」は間違い。

  • スライス(a[3:4]とかa[3:]とか)は常にリスト的なものを返す(要素じゃない)
  • 要素を取る書き方はa[3]
  • a[3:4]は3番目の要素(a[3])が一つだけ入ったリストを返す。[a[3] ]と同じ。
    • はてなダイアリーは]を二つ書くとなんかの記法と勘違いして一つに減らしてしまうのか


id:snow-bell リスト的な何か?って何て言うの?

3.6 シーケンス型 str, unicode, list, tuple, buffer, xrangeかな。