Python 3 内置函数 - zip()
函数
0. zip()
函数
将对象中对应的元素打包成一个元组,然后返回由这些元组组成的对象。
- 可以用 list() 转换来输出列表。
- 利用 * 号操作符,可以将元组解压为列表。
1. 使用方法
>>> 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.
2. 使用示例
2.1. 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)])
2.1. zip(*)
解压
利用
*
号操作符,可以将元组解压为列表。
>>> x = [('a', 1), ('b', 2), ('c', 3)]
>>> a, b = zip(*x)
>>> a, b
# output:
(('a', 'b', 'c'), (1, 2, 3))