是否有内置的python来创建多个列表中的元组?

Luc*_*cas 7 python transpose built-in list-manipulation

是否有一个内置的python与一组列表的tupler相同,或类似的东西:

def tupler(arg1, *args):
    length = min([len(arg1)]+[len(x) for x in args])
    out = []
    for i in range(length):
        out.append(tuple([x[i] for x in [arg1]+args]))
    return out
Run Code Online (Sandbox Code Playgroud)

所以,例如:

tupler([1,2,3,4],[5,6,7])
Run Code Online (Sandbox Code Playgroud)

收益:

[(1,5),(2,6),(3,7)]
Run Code Online (Sandbox Code Playgroud)

或者也许有适当的pythony方式这样做,还是有类似的发电机???

Gab*_*abe 15

我想你正在寻找zip():

>>> zip([1,2,3,4],[5,6,7])
[(1, 5), (2, 6), (3, 7)]


u_b*_*u_b 5

看一下内置的zip函数http://docs.python.org/library/functions.html#zip

它也可以处理两个以上的列表,例如n,然后创建n元组.

>>> zip([1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14])
 [(1, 5, 9, 13), (2, 6, 10, 14)]
Run Code Online (Sandbox Code Playgroud)