Python 是否有一种优雅的方法可以使一个列表包含一些整数,从而使一个列表包含一些元组?

Python 是否有一种优雅的方法可以使一个列表包含一些整数,从而使一个列表包含一些元组?,python,Python,我有一张单子 a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 有什么优雅的方法可以让它们成对工作吗? 我的预期结果是 [(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)] 这是一个常见的成语 [(a[2*i], a[2*i+1] ) for i in range(len(a)/2)] 这当然是假设len(a)是偶数 def group(lst, n): """group([0,3,4,10,2,3], 2) => [(0,

我有一张单子

a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
有什么优雅的方法可以让它们成对工作吗? 我的预期结果是

[(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)]
这是一个常见的成语

[(a[2*i], a[2*i+1] ) for i in range(len(a)/2)]
这当然是假设len(a)是偶数

def group(lst, n):
    """group([0,3,4,10,2,3], 2) => [(0,3), (4,10), (2,3)]

    Group a list into consecutive n-tuples. Incomplete tuples are
    discarded e.g.

    >>> group(range(10), 3)
    [(0, 1, 2), (3, 4, 5), (6, 7, 8)]
    """
    return zip(*[lst[i::n] for i in range(n)]) 

从activestate,n元组的配方,而不仅仅是2元组

尝试使用切片和zip

>>> a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> zip(a[::2],a[1::2])
[(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)]

“有没有优雅的方式……”在Python中,答案总是肯定的;)你能解释一下吗?
def group(lst, n):
    """group([0,3,4,10,2,3], 2) => [(0,3), (4,10), (2,3)]

    Group a list into consecutive n-tuples. Incomplete tuples are
    discarded e.g.

    >>> group(range(10), 3)
    [(0, 1, 2), (3, 4, 5), (6, 7, 8)]
    """
    return zip(*[lst[i::n] for i in range(n)]) 
>>> a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> zip(a[::2],a[1::2])
[(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)]