我有一个任意长度的列表,我需要将它分成相同大小的块并对其进行操作.有一些明显的方法可以做到这一点,比如保留一个计数器和两个列表,当第二个列表填满时,将它添加到第一个列表并清空下一轮数据的第二个列表,但这可能非常昂贵.
我想知道是否有人对任何长度的列表都有一个很好的解决方案,例如使用生成器.
我一直在寻找有用的东西,itertools但我找不到任何明显有用的东西.但是可能会错过它.
这个问题类似于将列表切割成子列表列表,但在我的情况下,我希望包含每个前一个子列表的最后一个元素,作为下一个子列表中的第一个元素.并且必须考虑到最后一个元素总是至少有两个元素.
例如:
list_ = ['a','b','c','d','e','f','g','h']
Run Code Online (Sandbox Code Playgroud)
3号子列表的结果:
resultant_list = [['a','b','c'],['c','d','e'],['e','f','g'],['g','h']]
Run Code Online (Sandbox Code Playgroud) 我真的陷入了一个基本问题.我试图获取一个项目的列表,并将其划分为许多项目的列表,每个项目的字符长度为10.例如,给出一个包含一个项目的列表['111111111122222222223333333333'],输出将产生:
1111111111
2222222222
3333333333
Run Code Online (Sandbox Code Playgroud)
我觉得这很简单,但我很难过.我试图创建一个这样的函数:
def parser(nub):
while len(nub) > 10:
for subnub in nub:
subnub = nub[::10]
return(subnub)
else:
print('Done')
Run Code Online (Sandbox Code Playgroud)
显然,这不起作用.有什么建议?使用字符串比列表更容易吗?
我是Python的新手,这可能是一个非常简单的问题,但我无法搞清楚.我有一些我需要转换的原始输入.输入是一个文本体,'ABCDEFGHIJKLMNO'但为了让我继续,我需要将其转换为一个字符串,如'ABC DEF GHI JKL MNO'.