python-对象不可迭代,但可迭代
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-对象不可迭代,但可迭代,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含856字,纯文字阅读大概需要2分钟。
内容图文
![python-对象不可迭代,但可迭代](/upload/InfoBanner/zyjiaocheng/674/835e9b9066e247c9a6b289a5e31580b8.jpg)
>>> carls = [c.source.out_crushes.all().select_related().values_list('target') for c in similar_crushes]
>>> [carlid for carlid in c for c in carls]
Traceback (most recent call last):
File "<console>", line 1, in <module>
TypeError: 'Crush' object is not iterable
>>> for c in carls:
... pass
...
>>> [carlid for carlid in c for c in carls]
[(1,), (1,), (3,), (3,)]
抱歉,您的问题标题很糟糕,但我不知道该如何措辞更好,因为我完全迷失了.
这里发生了什么?为什么在初始列表理解中它不是可迭代的,但是当我分别迭代其中的一部分时,它变得可迭代了?
解决方法:
卡尔看起来应该是列表的列表,例如[[((1,),(2,),(3,)],[(1,),(2,)]]
当您[在car中将c替换为car中的c替换为carlid]时,您将尝试遍历c的最后定义值,该值本来是来自same_crushes的Crush对象.
在carl中对c进行操作时:将c重新定义为carls列表中的最后一个元素,卡尔斯列表是PKs元组的列表,可迭代.
for i in range(100):
pass
print i
# out : 99
内容总结
以上是互联网集市为您收集整理的python-对象不可迭代,但可迭代全部内容,希望文章能够帮你解决python-对象不可迭代,但可迭代所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。