作者: Fe2+
日時: 2004/3/17(12:33)
Fe2+ です。

At Wed, 17 Mar 2004 11:43:11 +0900,
Kaoru Kusunoki wrote:
> 
> >>> a
> '1234567890'
> >>> a[1:5]+a[7:9]  <--- これを簡単にはならないのか?
> '234589'

これ以上は無理だと思います。

> >>> a[1:5+7:9] <--- なぜ 2 なのか?
> '2'
> >>> a[1:5-3:6] <--- なぜ 2 なのか?
> '2'

スライスの書き方として、3番目の引数が使えるようになったのはわりと最近
のことだったと思いますが、たとえば
http://www.python.jp/pub/doc_jp/lib_2.3/typesseq.html
には
「s[i:j:k]	s の i 番目から j 番目まで、k 毎のスライス」
と書いてあります。
だいたい range の引数と同じだと思えばいいでしょう。
ですので、上の例題では、範囲が狭すぎるか、ステップが長過ぎるので、1番
目の要素の '2' しか得られていません。

>>> a[1:8:2]
'2468'
>>> a[::-1]
'0987654321'

といった感じの使い方ができるものなのです。
-- 
MATSUI Fe2+ Tetsushi
 mailto:VED03370@...
 http://member.nifty.ne.jp/Fe/ -> http://homepage3.nifty.com/text/