【问题标题】:How to extract list from list of list in chunks?如何从块列表中提取列表?
【发布时间】:2020-09-02 19:29:27
【问题描述】:

我有一个类似这样的列表 a = [[1,2,3],[4,5,6],[7,8,9],[1,3,2],[3,4,6],[7,8,1] ,[1,4,6]] 列表的大小是可变的。 现在我必须一次从列表中提取两个项目,例如([1,2,3],[4,5,6]) 并再次调用一个方法获取下两个元素并再次调用它,直到所有项目都结束。 最后一项的大小可以是 1。 像这样:

def abc(list_of_list_sliced):
 do_something

a = [[1,2,3],[4,5,6],[7,8,9],[1,3,2],[3,4,6],[7,8,1],[1,4,6]]
abc([[1,2,3],[4,5,6]])
abc([7,8,9],[1,3,2])
abc([3,4,6],[7,8,1])
abc([[1,4,6]])

【问题讨论】:

  • 只需循环使用for i in range(0, len(a), 2): abc(a[i : i+2])
  • 最后一个元素呢?
  • 您可以通过list(map(abc, more_itertools.sliced(a, 2))) 迭代卡盘。通过pip install more_itertools 安装。它将处理剩余物品。
  • @NishantRanjan 它仍然可以工作;如果您已经离开列表的末尾,切片将简单地包含比您要求的更少的元素(提取单个索引时不会出现这种情况,如果这样做会出现错误)。
  • 知道了!谢谢@alani

标签: python python-3.x list


【解决方案1】:

尝试以下方法:

for i in range(0, len(a), 2):
  abc(a[i:i+2])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-15
    • 1970-01-01
    • 2015-04-19
    相关资源
    最近更新 更多