2016-09-25 176 views

回答

4

itertools documentation包含grouper食譜組連續項目到固定大小的羣組:

from itertools import * 

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) 

現在,您可以將其分組成8個大小的列表,並將每個列表轉換爲tring:

>>> [''.join(e) for e in grouper(x, 8)] 
['001a4b62', '21415798'] 
1

您可以使用連接將字符數組轉換爲字符串。 這裏是你怎麼做你的情況 -

x = ['0','0','1','a','4','b','6','2','2','1','4','1','5','7','9','8'] 
i = 0 
strlist = [] 
while i<len(x): 
    strlist.append(''.join(x[i:i+8])) 
    i+=8 

strlist將舉行分組的字符串。

2
x = ['0','0','1','a','4','b','6','2','2','1','4','1','5','7','9','8'] 

簡單:

print(["".join(x[i:i + 8]) for i in range(0, len(x), 8)]) 
> ['001a4b62', '21415798'] 
1

首先檢查了以下How to split python list into chunks of equal size?

有了這個地方,你可以在Python 3.x的做,給上述變量x

import operator 
import functools 
result = map(lambda s: functools.reduce(operator.add, s), zip(*[iter(x)]*8)) 

在python 2.x中,您可以刪除前綴functools 減少。

fricke

相關問題