在python中从字符串中获取两个字符

Ado*_*mas 6 python loops for-loop character

如何从字符串中获取python而不是一个字符,而是两个?

我有:

long_str = 'abcd'
for c in long_str:
   print c
Run Code Online (Sandbox Code Playgroud)

它让我喜欢

a
b
c
d
Run Code Online (Sandbox Code Playgroud)

但我需要得到

ab
cd
Run Code Online (Sandbox Code Playgroud)

我是python中的新手..有什么办法吗?

dan*_*ben 12

您可以使用切片表示法. 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
Run Code Online (Sandbox Code Playgroud)

在这里,我使用三参数范围运算符来表示开始,结束和步骤(请参阅http://docs.python.org/library/functions.html).

请注意,对于奇数长度的字符串,这不会占用最后一个字符.如果您想要自己的最后一个字符,请将第二个参数更改rangelen(long_str).


ken*_*ytm 7

for i, j in zip(long_str[::2], long_str[1::2]):
  print (i+j)
Run Code Online (Sandbox Code Playgroud)

要么

import operator
for s in map(operator.add, long_str[::2], long_str[1::2]):
   print (s)
Run Code Online (Sandbox Code Playgroud)

itertools还提供了一个通用的实现:

def grouper(n, iterable, fillvalue=None):
    "grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx"
    args = [iter(iterable)] * n
    return izip_longest(fillvalue=fillvalue, *args)
Run Code Online (Sandbox Code Playgroud)