是否有Python内置函数可以从多个列表创建元组?
有没有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)]