documents:olddiary:2014:201402
目次
←..:2013:201308^start|目次^201404→
2014-02 日記コピー
2014-02-06 定義の内容を覚えてれば問題じゃないんだけどね
[雑記] Pythonのスライス
いま、故あってオライリーの「Pythonチュートリアル 第2版」を読んでます。そしてまぁ、久々に知らない言語覚える過程で引っかかってしまった話があるので備忘録。
うん。スライスってものに引っかかったんだ。
>>> "HelpA"[2:4] 'lp' >>> "helpa"[:2] 'he' >>> "HELPa"[2:] 'LPa' >>>
インデクスを要素の番号と考えちゃだめ
この指定自体は他の言語でも似たようなのがあるので考え方の理解には問題はないと思う。
でも、インデクスを「要素の番号」ととらえるとつじつまがあわなくて???となる。
インデクスとは先頭要素の前・最後の要素の後・要素間につけられる番号
インデクスはゼロから始まるので、“HelpA”[2:4] の結果は “lpA” かなと思うと結果は “lp” と言われてしまった。実はインデクスとは先頭要素の前・最後の要素の後・要素間につけられる番号。
なのでインデクス0は“H”の前、インデクス1は“H”の後に位置する。インデクス5は“A”の後だ。
“e”と“l”の間がインデクス2、“p”と“A”の間がインデクス4になる。インデクス2と4で範囲指定された要素はつまり“l”と“p”になる。
Pythonチュートリアルを読めばきちんと書いてあるんだけど、最初のあたりで説明無いからすごい意地悪だなーと思ってしまった。
あるいは、「そのくらい気付くべ普通」って事なのかな。
省略形の話
じゃあ “helpa”[:2] は?って話だけど、これは “helpa”[0:2] と等価。
じゃあ “HELPa”[2:] は?って話だけど、これは “HELPa”[2:5] と等価。
省略するとインデクスの先頭・最後の値が仮定されます。
documents/olddiary/2014/201402.txt · 最終更新: 2023/04/14 02:32 by 127.0.0.1