是否有Python内置函数可以从多个列表创建元组?

7 投票
4 回答
1386 浏览
提问于 2025-04-16 15:38

有没有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

比如说:

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

返回:

[(1,5),(2,6),(3,7)]

或者,也许有更符合Python风格的方法,或者有没有类似的生成器???

4 个回答

2

在编程中,有时候我们需要让程序在特定的条件下执行某些操作。这就像给程序设定了一些规则,只有当这些规则被满足时,程序才会继续运行。

比如说,如果你想让程序在用户输入一个数字时做出反应,你可以设置一个条件:只有当输入的确实是数字时,程序才会继续执行后面的代码。如果用户输入的不是数字,程序就会停止或者给出提示。

这种方式可以帮助我们避免错误,让程序更加智能和友好。通过设置条件,我们可以控制程序的行为,确保它按照我们的预期运行。

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

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


args = [(1,5),(2,6),(3,7)]

zip(*args)

--->[1,2,3],[5,6,7]
5

看看Python里自带的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)]
15

我觉得你在找的是 zip() 这个函数:

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

撰写回答