我真的陷入了一个基本问题.我试图获取一个项目的列表,并将其分成许多项目的列表,每个项目的字符长度为10.例如,给出一个列表,其中包含一个项目,[‘111111111122222222223333333333’],输出将产生:
1111111111 2222222222 3333333333
我觉得这很简单,但我很难过.我试图创建一个这样的函数:
def parser(nub): while len(nub) > 10: for subnub in nub: subnub = nub[::10] return(subnub) else: print('Done')
显然,这不起作用.有什么建议?使用字符串比列表更容易吗?
解决方法
有人提出了一个相关的问题:
Slicing a list into a list of sub-lists
Slicing a list into a list of sub-lists
例如,如果您的源列表是:
the_list = [1,2,3,4,5,6,7,8,9,... ]
你可以拆分它像:
split_list = [the_list[i:i+n] for i in range(0,len(the_list),n)]
假设n是您的子列表长度,结果将是:
[[1,...,n],[n+1,n+2,n+3,2n],...]
然后你可以像下面这样迭代它:
for sub_list in split_list: # Do something to the sub_list
字符串也是如此.
这是一个实际的例子:
>>> n = 2 >>> listo = [1,9] >>> split_list = [listo[i:i+n] for i in range(0,len(listo),n)] >>> split_list [[1,2],[3,4],[5,6],[7,8],[9]] >>> listo = '123456789' >>> split_list = [listo[i:i+n] for i in range(0,n)] >>> split_list ['12','34','56','78','9']