我在 Python 3.4.3 中遇到了一个奇怪的问题,而且似乎没有在任何地方提到它。
可以说:
a = [1,2,3,4]
and b = [5,6,7,8]
要垂直连接这些:ab = zip(a,b)
在Python 3中,ab
本身会返回:
zip 对象位于(某个十六进制数字)
一切顺利,在 python 3 中,检索串联列表:
aabb = list(ab)
现在问题来了,第一次,aabb
确实会返回一个真实的列表:
[(1, 5), (2, 6), (3, 7), (4, 8)]
然而,第二次及以后,如果您再次执行整个过程list(aabb)
只会返回一个空的[]
容器,就像list()
会做。
只有在我重新启动 shell/解释器后它才会再次工作。
这是正常现象还是错误?
EDIT:好吧,伙计们,我没有意识到这与zip
,它看起来恒定为ab
每次都返回相同的十六进制值,所以我认为这与list(ab)
.
无论如何,通过重新分配解决了ab = zip(ab)
根据我对答案和原始链接的理解,ab
一旦阅读就会被处理。