我有如下字符串
stg = 'AVBFGHJ'
我希望相邻的字母按预期打印如下
AV VB BF FG GH HJ J None
我尝试了下面的代码,但抛出错误,如“索引超出范围”
我的密码:
for i in range(len(stg)): print(stg[i],stg[i+1])
vwoqyblh1#
这是注定要发生的。您正在访问的索引超出了字符串的范围。如果你真的想这样做,你可以这样做
stg = 'AVBFGHJ' for i in range(len(stg)): if (i + 1) < len(stg): print(stg[i],stg[i+1]) else: print(stg[i], None)
iecba09b2#
一种简单的Python方法是使用itertools.zip_longest:
itertools.zip_longest
from itertools import zip_longest stg = 'AVBFGHJ' for x in zip_longest(stg, stg[1:]): print(*x)
在python 3.10以上的情况下,可以使用itertools.pairwise:
itertools.pairwise
print(*(f"{a}{b}" for a,b in itertools.pairwise(stg)), sep='\n')
如果没有itertoools,则可以单独处理最后一种情况:
itertoools
for x in zip(stg, stg[1:]): print(*x) print(stg[-1], None)
输出量:
A V V B B F F G G H H J J None
2条答案
按热度按时间vwoqyblh1#
这是注定要发生的。您正在访问的索引超出了字符串的范围。
如果你真的想这样做,你可以这样做
iecba09b2#
一种简单的Python方法是使用
itertools.zip_longest
:在python 3.10以上的情况下,可以使用
itertools.pairwise
:如果没有
itertoools
,则可以单独处理最后一种情况:输出量: