代码之家  ›  专栏  ›  技术社区  ›  volting

从元组列表转换为元组列表[重复]

  •  1
  • volting  · 技术社区  · 14 年前

    可能重复:
    How do you split a list into evenly sized chunks in Python?

    我有元组列表,每个元组有两个项目(元组的数量可能会有所不同)。

    [(a, b), (c, d)...)]
    

    我想把这个列表转换成一个嵌套的元组列表,这样每个嵌套列表都包含4个元组,如果原来的元组列表中的数量不能被4整除,例如13,那么最后的列表应该包含13,1个元组的剩余量。

    [[(a, b), (c, d), (e, f), (g, h)], [(a, b), (c, d), (e, f), (g, h)]...]
    

    我喜欢的关于Python的一件事是在不同的数据结构之间转换的方法和构造,我希望有这样一种方法或构造可以解决这个问题,它比IV提出的方法或构造更具有蟒蛇式。

        image_thumb_pairs = [(a, b), (c, d), (e, f), (g, h), (i, j)]
        row = []
        rows = []
        for i, image in enumerate(image_thumb_pairs):
            row.append(image)
            if(i+1) % 4 == 0:
                rows.append(row)
                row = []
        if row:
            rows.append(row) 
    
    1 回复  |  直到 14 年前
        1
  •  2
  •   Dave Kirby    14 年前
    >>> lst = [(1,2), (3,4), (5,6), (7,8), (9,10), (11,12), (13, 14), (15, 16), (17, 18)]
    >>> [lst[i:i+4] for i in xrange(0, len(lst), 4)]
    [[(1, 2), (3, 4), (5, 6), (7, 8)], [(9, 10), (11, 12), (13, 14), (15, 16)], [(17, 18)]]