如何在Python中获取两个字符而不是一个字符的字符串?
我有以下代码:
long_str = 'abcd'
for c in long_str:
print c
而且它给我像
a
b
c
d
但我需要获取
ab
cd
我是Python的新手..有什么办法吗?
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
我在这里使用三个参数的 range 运算符来表示开始、结束和步长(请参见http://docs.python.org/library/functions.html)。
请注意,对于奇数长度的字符串,这不会取最后一个字符。如果你只想要最后一个字符,请将 range 的第二个参数改为 len(long_str)
。
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)