私は文字の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']
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は、あなたのグループ化された文字列を保持します。
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']
まず、あなたはPythonの3.xの中で行うことができる場所にこれでHow to split python list into chunks of equal size?
次のチェックアウト上記の変数にx
import operator
import functools
result = map(lambda s: functools.reduce(operator.add, s), zip(*[iter(x)]*8))
を与えます
python 2.xでは、functools
という接頭辞を減らす。
fricke