为什么set((3 for i in range(5)))返回{3}
而x = (3 for i in range(5)) set(x)返回空集合
求赐教 不胜感激!
有关python生成器转换为集合的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- mollpppp 2020-04-04 20:17关注
本质原因是:(3 for i in range(5)) 是一个生成器。
为什么 返回{3}? 因为对内层(3 for i in range(5))这个生成器而言,他每次返回一个3,一共返回五次,然后在set作用下,去重得到{3}。
x = (3 for i in range(5)) set(x)返回空集合,是因为x是一个生成器,在执行过list(x)后,x生成器里的数字被掏空了,
x没有数生成给set,因此set(x)为空集合。
如果没有list(x),set(x)仍旧为{3}解决 无用评论 打赏 举报
悬赏问题
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 保护模式-系统加载-段寄存器
- ¥15 电脑桌面设定一个区域禁止鼠标操作