我知道*Python中的运算符用于解包可迭代对象,例如解包列表。
不过,在实践中,我们也使用*operator来解包迭代器,但我还没有找到解释它的文档。
参见示例:
>>> a = [1,2,3]
>>> print(a)
[1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
解压可迭代的
>>> print(*a)
1,2,3
Run Code Online (Sandbox Code Playgroud)
解压迭代器
>>> it = iter(a)
>>> print(*it)
1,2,3
Run Code Online (Sandbox Code Playgroud)
这是有效的iter,因为 应用于迭代器会返回相同的迭代器:
iterator.__iter__()
返回迭代器对象本身。这是允许容器和迭代器与 for 和 in 语句一起使用所必需的。该方法对应于Python/C API中Python对象类型结构的tp_iter槽。
在表达式列表中使用对象已经导致迭代器的创建。假设迭代器/迭代器协议已正确实现,则func(*iter(foo))与 具有相同的效果。func(*foo)
| 归档时间: |
|
| 查看次数: |
7809 次 |
| 最近记录: |