我有一个字典的python列表,想要加入它们来创建一个包含8个元素的字符串列表,例如:
x = ['0','0','1','a','4','b','6','2','2','1','4','1','5','7','9','8']
结果
['001a4b62', '21415798']
答案 0 :(得分: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的列表分组,然后将每个列表转换为字符串:
>>> [''.join(e) for e in grouper(x, 8)]
['001a4b62', '21415798']
答案 1 :(得分: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']
答案 2 :(得分:1)
您可以使用join将字符数组转换为字符串。 以下是你的例子 -
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将保留您的分组字符串。
答案 3 :(得分: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