как войти в Python от строки не один символ, но два?
Я имею:
long_str = 'abcd'
for c in long_str:
print c
и это дает мне как
a
b
c
d
но я должен добраться
ab
cd
Я являюсь новым в Python.. есть ли какой-либо путь?
for i, j in zip(long_str[::2], long_str[1::2]):
print (i+j)
или
import operator
for s in map(operator.add, long_str[::2], long_str[1::2]):
print (s)
itertools также предоставляют обобщенную реализацию этого:
def grouper(n, iterable, fillvalue=None):
"grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx"
args = [iter(iterable)] * n
return izip_longest(fillvalue=fillvalue, *args)
Вы можете использовать нотацию фрагментов. long_str [x: y]
предоставит вам символы в диапазоне [x, y)
(где x включен, а y нет).
>>> for i in range(0, len(long_str) - 1, 2):
... print long_str[i:i+2]
...
ab
cd
Здесь я использую оператор диапазона с тремя аргументами для обозначения начала, конца и шага (см. http://docs.python.org/library/functions.html ).
Обратите внимание, что для строки нечетной длины это не займет последний символ. Если вам нужен только последний символ, измените второй аргумент диапазона диапазон
на len (long_str)
.