Получение двух символов от строки в Python

как войти в Python от строки не один символ, но два?

Я имею:

long_str = 'abcd'
for c in long_str:
   print c

и это дает мне как

a
b
c
d

но я должен добраться

ab
cd

Я являюсь новым в Python.. есть ли какой-либо путь?

6
задан kennytm 22 May 2010 в 13:40
поделиться

2 ответа

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)
7
ответ дан 8 December 2019 в 12:18
поделиться

Вы можете использовать нотацию фрагментов. 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) .

12
ответ дан 8 December 2019 в 12:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: