zip() 函数是 Python 内置函数之一,它可以将多个序列(列表、元组、字典、集合、字符串以及 range() 区间构成的列表)压缩成一个 zip 对象。所谓压缩,其实就是将这些序列中对应位置的
zip() 函数的语法格式为:和 Python 3.x 版本不同,Python 2.x 版本中的 zip() 函数会直接返回列表,而不是返回 zip 对象。但是,返回的列表或者 zip 对象,其包含的元素(都是元组)是相同的。
zip(iterable, ...)
其中 iterable,... 表示多个列表、元组、字典、集合、字符串,甚至还可以为 range() 区间。下面程序演示了 zip() 函数的基本用法:
my_list = [11,12,13] my_tuple = (21,22,23) print([x for x in zip(my_list,my_tuple)]) my_dic = {31:2,32:4,33:5} my_set = {41,42,43,44} print([x for x in zip(my_dic)]) my_pychar = "python" my_shechar = "shell" print([x for x in zip(my_pychar,my_shechar)])程序执行结果为:
[(11, 21), (12, 22), (13, 23)]
[(31,), (32,), (33,)]
[('p', 's'), ('y', 'h'), ('t', 'e'), ('h', 'l'), ('o', 'l')]
另外,对于 zip() 函数返回的 zip 对象,既可以像上面程序那样,通过遍历提取其存储的元组,也可以向下面程序这样,通过调用 list() 函数将 zip() 对象强制转换成列表:
my_list = [11,12,13] my_tuple = (21,22,23) print(list(zip(my_list,my_tuple)))程序执行结果为:
[(11, 21), (12, 22), (13, 23)]