ただのメモ。
Python3 の rangeは間隔を指定できるが、-1の間隔も指定できる。つまり降順で0まで舐めるときこう書ける。
for i in range(x,-1,-1): #処理
リストも同じように間隔を指定できるので(スライス)、同じことをやろうとして手癖でこう書くと
aA[x:-1:-1]
期待したものがでてこない。リストで-1は末尾なので、-1まで-1するのではなく、-1(末尾)と比較してすぐ終わってしまい、無が返ってくる。リストの場合こう書かないといけない。
aA[x::-1]
ちょっとハマってしまってこれがわかったとき、とりあえずこう書いてしのいだ。
def parseZero(ii): if ii >= 0: return ii #文字列Sのl,r間を転置し続ける for _ in range(N): l,r=[int(_)-1 for _ in input().split()] S = "".join((S[:l],S[r:parseZero(l-1):-1],S[r+1:]))
便利言語の罠だな。こわいこわい。(罠というか.... ボケ?)
- 作者: Bill Lubanovic,斎藤康毅,長尾高弘
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/12/01
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る
- 作者: Mark Summerfield,斎藤康毅
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/12/01
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る