为了账号安全,请及时绑定邮箱和手机立即绑定

Python 打印时结果不一致,想知道原因是什么?

Python 打印时结果不一致,想知道原因是什么?

心有法竹 2023-09-05 15:24:54
>>> all=[""]>>> i="One">>> l=(item for item in all if item in i)>>> print(len(list(l)))1>>> print(len(list(l)))0>>>第一次打印答案是1,没有任何修改第二次是0
查看完整描述

2 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

这是因为l它是一个生成器。当它停止迭代器时(第一次之后)它是空的并返回 len 为 0。

使用[item for item in all if item in i]而不是(item for item in all if item in i)使其成为列表


查看完整回答
反对 回复 2023-09-05
?
白衣染霜花

TA贡献1796条经验 获得超10个赞

l是一个发电机。当你第一次调用它时,list(l)它会给你一个列表。第二次调用时,生成器为空,因此长度为0



查看完整回答
反对 回复 2023-09-05
  • 2 回答
  • 0 关注
  • 91 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信