请描述Python中的迭代器和生成器。
迭代器是一种对象，用于遍历可迭代序列（如列表或字符串）中的元素。它通过实现`__iter__()`和`__next__()`方法来工作。

生成器是一种特殊类型的迭代器，可以通过函数来实现。它使用`yield`关键字来暂停函数的执行并返回一个值，然后可以继续从停止的位置恢复执行。这使得生成器可以一次生成一个值，而不必事先生成整个序列。生成器对象是延迟计算的--它们只在需要时才计算--这使得它们非常适合处理大型数据集或无限序列。