LoginSignup
2
2

More than 3 years have passed since last update.

PythonのSliceにモヤっとした話

Last updated at Posted at 2020-08-03

モヤッとした

Python初心者がざっくり以下のようなコードを書いてるときに想定したのと違った結果が返ってきてモヤっとした話です。

コード

p=0
q=1
l=['a','b','c','d','e','f','g']
print(l[p:q])

#['a']

ちなみに初心者の私が想定した出力結果のは以下の通りでした。

#['a','b']

何故結果が異なる?

以下の記事で解決いたしました。
【Python】スライス操作についてまとめ
仕様ということのようです。

でも納得行かない

参考のリンクを拝見させて頂いたりした結果、開発の意図としては
[a:b]という記述は between a to b であるという事のようです、日本語で言うならa以上b未満。

しかし初見でこの記述をbetween a to b であるとを理解しろと言うのは中々ハードルが高い気がします。
[恵比寿:六本木]と記載されてる記述を見たら私は from 恵比寿 to 六本木だと解釈してしまうでしょう、まさか降りる駅が広尾だとは思いませんでした。
0000.png

そもそも slice の a to b がそれぞれ上記画像の from index to len の意味になるわけで、感覚的もプログラマ的にも解釈するのは辛いと感じてしまいました。
そんな感じで[なんかの変数のindex,len(なんかの変数)]と指定して単一要素を取り出す事に意味が見いだせず調べ物に時間を費やしてしまう結果に。

明確なメリットが有るんだよという回答をお持ちの方がいらっしゃったなら、是非ご教示いただければ幸いです。

気になりすぎて

ラブライブのMV自動再生してる暇がなかった

2
2
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2