![Python:从列表中获取很多列表[重复],第1张 Python:从列表中获取很多列表[重复],第1张](/aiimages/Python%EF%BC%9A%E4%BB%8E%E5%88%97%E8%A1%A8%E4%B8%AD%E8%8E%B7%E5%8F%96%E5%BE%88%E5%A4%9A%E5%88%97%E8%A1%A8%5B%E9%87%8D%E5%A4%8D%5D.png)
该迭代工具文档。阅读,学习,喜欢它。
具体来说,从食谱部分:
import itertoolsdef grouper(n, iterable, fillvalue=None): "grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx" args = [iter(iterable)] * n return itertools.izip_longest(fillvalue=fillvalue, *args)
这使:
>>> tuple(grouper(3, (1,2,3,4,5)))((1, 2, 3), (4, 5, None))
那不是你想要的…你不想
None在那里…所以。快速修复:
>>> tuple(tuple(n for n in t if n) for t in grouper(3, (1,2,3,4,5)))((1, 2, 3), (4, 5))
如果您不想每次都输入列表理解,我们可以将其逻辑移至该函数中:
def my_grouper(n, iterable): "my_grouper(3, 'ABCDEFG') --> ABC DEF G" args = [iter(iterable)] * n return tuple(tuple(n for n in t if n) for t in itertools.izip_longest(*args))
这使:
>>> tuple(my_grouper(3, (1,2,3,4,5)))((1, 2, 3), (4, 5))
做完了
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)