如果您想一次访问 3 个字符的字符串,则需要使用slicing.
您可以使用如下列表理解来获取字符串的 3 个字符长片段的列表:
>>> x = 'this is a string'
>>> step = 3
>>> [x[i:i+step] for i in range(0, len(x), step)]
['thi', 's i', 's a', ' st', 'rin', 'g']
>>> step = 5
>>> [x[i:i+step] for i in range(0, len(x), step)]
['this ', 'is a ', 'strin', 'g']
重要的是:
[x[i:i+step] for i in range(0, len(x), step)]
range(0, len(x), step)
为我们提供每个的开始索引step
- 字符切片。for i in
将迭代这些索引。x[i:i+step]
得到切片x
从索引开始i
and is step
长字符。
如果你知道你会得到exactly每次四块,那么你可以这样做:
a, b, c, d = [x[i:i+step] for i in range(0, len(x), step)]
如果发生这种情况3 * step < len(x) <= 4 * step
.
如果你没有正好四块,那么Python会给你一个ValueError
试图解开这个列表。因此,我认为这种技术非常脆弱,并且不会使用它。
你可以简单地做
x_pieces = [x[i:i+step] for i in range(0, len(x), step)]
现在,您曾经访问过的地方a
,您可以访问x_pieces[0]
. For b
, 您可以使用x_pieces[1]
等等。这可以让您更加灵活。