假设我有以下列表:
['id-1213fsr53', 'WAITING', '54-81-24-40', 'world', 'id-343252sfsg', 'WAITING', '54-41-06-143', 'hello']
Run Code Online (Sandbox Code Playgroud)
列表可以按以下格式细分为元组:
(id, status, ip-address, name)
Run Code Online (Sandbox Code Playgroud)
所以,在另一个检查状态,我需要通过这4个元素元组迭代该列表,如:
for s in status:
(id, status, ip-address, name) = s # (s is a 4 element list)
# increment s by 4, and continue the loop
Run Code Online (Sandbox Code Playgroud)
我怎样才能实现这样的行为python
?
最简单的方法是grouper
itertools
配方:
def grouper(iterable, n, fillvalue=None):
"Collect data into fixed-length chunks or blocks"
# grouper('ABCDEFG', 3, 'x') --> ABC DEF Gxx
args = [iter(iterable)] * n
return izip_longest(fillvalue=fillvalue, *args)
Run Code Online (Sandbox Code Playgroud)
你可以这样使用:
for s in grouper(status, 4):
Run Code Online (Sandbox Code Playgroud)
请注意,如果status
用于解压缩其中一个元组值和原始数据,则会出现问题.