我有字符的Python列表,並希望加入他們創造每8種元素的字符串,如清單:如何將字符列表連接成8個字符串?
x = ['0','0','1','a','4','b','6','2','2','1','4','1','5','7','9','8']
結果
['001a4b62', '21415798']
我有字符的Python列表,並希望加入他們創造每8種元素的字符串,如清單:如何將字符列表連接成8個字符串?
x = ['0','0','1','a','4','b','6','2','2','1','4','1','5','7','9','8']
結果
['001a4b62', '21415798']
的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']
您可以使用連接將字符數組轉換爲字符串。 這裏是你怎麼做你的情況 -
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將舉行分組的字符串。
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']
首先檢查了以下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