Python zip函数 - 奇怪的结果

pyt*_*tus 2 python generator python-3.x

学习python,遇到了zip函数,并了解它应该构建两对列表.但是,它似乎在我的IDE中不起作用.

a = ['a','b','c']
b = ['p','q','r']
r = zip(a,b)
print(r)
Run Code Online (Sandbox Code Playgroud)

在这里,我期望打印[('a','p'),('b','q'),('c','r')].但是,打印输出是:<zip object at 0x011E57D8>

为什么这样,我做错了什么?

gab*_*ous 7

您正在使用Python 3.在Python 3中,zip()返回迭代器而不是列表.

迭代器评估是懒惰的:一次只返回一个项目,但没有__len__.迭代器最适合循环:实际上,大部分时间zip()都将在循环中使用,一次只需要一个项目,节省内存和CPU周期.

只是尝试list(zip(a,b))强制将迭代器的评估放入列表中.