如何修改chunks函数使其仅返回列表的首个n元素分块
解决方案
你现有的代码逻辑是遍历整个列表,返回所有长度为n的分块,仅需限制仅返回第一个分块即可满足需求,可选择以下两种修改方案:
方式1:修改chunks函数核心逻辑
直接调整函数,仅生成首个分块:
def chunks(lst, n): """Yield the first n-sized chunk from lst.""" if lst: yield lst[:n] a_random_list=[1,2,3,4,5,6,7,8,9,10] just_some_chunks = list(chunks(a_random_list, 5)) print(just_some_chunks)
运行后输出结果为:
[[1, 2, 3, 4, 5]]
完全符合你的预期。
方式2:不修改原有函数,调用时做限制
如果你需要保留原有chunks函数返回全部分块的通用能力,可在调用时仅截取第一个结果:
# 原有chunks函数不变 def chunks(lst, n): """Yield successive n-sized chunks from lst.""" for i in range(0, len(lst), n): yield lst[i:i + n] a_random_list=[1,2,3,4,5,6,7,8,9,10] # 仅取第一个分块 just_some_chunks = list(chunks(a_random_list, 5))[:1] print(just_some_chunks)
也可以得到相同的输出结果。
内容的提问来源于stack exchange,提问作者AlSub
相关产品推荐
相关产品推荐

