zip()
函数zip()
函数将对象中对应的元素打包成一个元组,然后返回由这些元组组成的对象。
- 可以用 list() 转换来输出列表。
- 利用 * 号操作符,可以将元组解压为列表。
>>> help(zip)
# output: Help on class zip in module builtins: class zip(object) | zip(*iterables) --> A zip object yielding tuples until an input is exhausted. | | ## 使用方法 | >>> list(zip('abcdefg', range(3), range(4))) | [('a', 0, 0), ('b', 1, 1), ('c', 2, 2)] | | The zip object yields n-length tuples, where n is the number of iterables | passed as positional arguments to zip(). The i-th element in every tuple | comes from the i-th iterable argument to zip(). This continues until the | shortest argument is exhausted. | | Methods defined here: | | __getattribute__(self, name, /) | Return getattr(self, name). | | __iter__(self, /) | Implement iter(self). | | __next__(self, /) | Implement next(self). | | __reduce__(...) | Return state information for pickling. | | ---------------------------------------------------------------------- | Static methods defined here: | | __new__(*args, **kwargs) from builtins.type | Create and return a new object. See help(type) for accurate signature.
zip()
压缩>>> a = ['a','b','c'] >>> b = [1, 2, 3] >>> x = zip(a, b) >>> x, list(x)
# output: (<zip at 0x7f58142bcd00>, [('a', 1), ('b', 2), ('c', 3)])
zip(*)
解压利用
*
号操作符,可以将元组解压为列表。
>>> x = [('a', 1), ('b', 2), ('c', 3)] >>> a, b = zip(*x) >>> a, b
# output: (('a', 'b', 'c'), (1, 2, 3))