-1
import re , strings , os ,sys
sentence = "abcdefghijkl"
for i in range(0,len(sentence),3):
    twoletters = sentence[i:i+2] + sentence[i+1:i+3]
    print twoletters

これは私に与える:

abbc
deef
ghhi
jkkl

私が望むところ:

ab
bc
cd
de
ef
fg
gh
hi
ij
jk
kl

そのようなスプライシングを行う方法は?

4

5 に答える 5

3
>>> sentence = "abcdefghijkl"
>>> [sentence[i:i+2] for i in range(len(sentence) - 1)]
['ab', 'bc', 'cd', 'de', 'ef', 'fg', 'gh', 'hi', 'ij', 'jk', 'kl']
于 2012-06-19T14:23:28.873 に答える
1

あなたの考えに沿って、しかし単純化して、私は次のことをします

for i in range(0, len(sentence)-1):
    print sentence[i] + sentence[i + 1]
于 2012-06-19T14:28:50.083 に答える
1
>>>sentence = "abcdefghijkl"
>>>for i in range(0, len(sentence)-1):
>>>    print sentence[i:i+2]
ab
bc
cd
de
ef
fg
gh
hi
ij
jk
kl

またはリスト内包表記を使用する

>>>[sentence[i:i+2] for i in range(0, len(sentence)-1)]
['ab', 'bc', 'cd', 'de', 'ef', 'fg', 'gh', 'hi', 'ij', 'jk', 'kl']
于 2012-06-19T14:29:02.363 に答える
0
>>> from itertools import tee, izip, islice
>>> sentence = "abcdefghijkl"
>>> x, y = tee(sentence)
>>> y = islice(y, 1, None)
>>> for a,b in izip(x, y):
...     print a + "" + b
于 2012-06-19T15:29:34.820 に答える
0
[sentence[i:i+2] for i in range(0,len(sentence)-1,1)]

['ab'、'bc'、'cd'、'de'、'ef'、'fg'、'gh'、'hi'、'ij'、'jk'、'kl']

于 2012-06-20T06:04:50.703 に答える