Interleave multiple lists of the same length in Python

后端 未结 9 1566
刺人心
刺人心 2020-11-22 10:11

In Python, is there a good way to interleave two lists of the same length?

Say I\'m given [1,2,3] and [10,20,30]. I\'d like to transform th

9条回答
  •  不要未来只要你来
    2020-11-22 10:35

    For Python>=2.3, there's extended slice syntax:

    >>> a = [0, 2, 4, 6, 8]
    >>> b = [1, 3, 5, 7, 9]
    >>> c = a + b
    >>> c[::2] = a
    >>> c[1::2] = b
    >>> c
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    

    The line c = a + b is used as a simple way to create a new list of exactly the right length (at this stage, its contents are not important). The next two lines do the actual work of interleaving a and b: the first one assigns the elements of a to all the even-numbered indexes of c; the second one assigns the elements of b to all the odd-numbered indexes of c.

提交回复
热议问题