我有一串数据需要读取前两个字符,使用然后丢弃。
例如,
code = '2436444423'
我想采取' 24'将其分配给值' x'并删除 24'从原始字符串中将其保留为:
code = '36444423'
然后分配' 36'到' y,删除它,' 44'到' z'依此类推,直到原始字符串为空。
答案 0 :(得分:2)
你可以使用itertools.izip_longest
(在python 3中zip_longest
)来获得预期的对:
>>> from itertools import izip_longest
>>> args = [iter(code)] * 2
>>> [''.join(k) for k in izip_longest(*args)]
['24', '36', '44', '44', '23']
然后你可以简单地将你的值分配给变量,如果你想要整数类型的数字,可以使用int
:
>>> x,y,z,j,p=[int(''.join(k)) for k in izip_longest(*args)]
>>> (x,y,z,j,p)
(24, 36, 44, 44, 23)
答案 1 :(得分:1)
这样做:
code = '2436444423'
code = iter(code)
for x in code:
print x, next(code)
答案 2 :(得分:0)
这是使用生成器的一种方式:
code = '2436444423'
g = (''.join(t) for t in zip(*[iter(code)]*2))
x, y = next(g), next(g)
z = next(g)
这也可以是一个评估为['24', '36', '44', '44', '23']
的列表理解。
[''.join(t) for t in zip(*[iter(code)]*2)]
免责声明:这不会在任何时候改变变量code
的绑定。此外,如果代码长度为奇数,则不会返回最后一个字符。