python - '<生成器对象 <genexpr> 位于 0x0000014A76371040>'

标签 python

尝试在列表理解中使用 if else 预期输出为 (23.0,23.3,26.0,27.0,0) 已尝试将值转换为 float ,然后再将其潜水为十,但仍然不起作用

    temps= (230,233,260,270,-999)
    new_temps=((temp)/10 if temp != -999 else 0 for temp in temps)
    print(new_temps)

我得到的错误是 <0x0000021889021040处的生成器对象>

最佳答案

列表理解是通过[]完成的,而不是(),后者实际上是创建generator的符号。 .

要解决这个问题,只需更改为 []:

temps= (230,233,260,270,-999)
new_temps=tuple([(temp)/10 if temp != -999 else 0 for temp in temps])
print(new_temps)

但是如果您确实想使用生成器表示法,也可以这样做:

temps= (230,233,260,270,-999)
new_temps=tuple((temp/10 if temp != -999 else 0 for temp in temps))
print(new_temps)

关于python - '<生成器对象 <genexpr> 位于 0x0000014A76371040>',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66684470/

相关文章:

Python:获取一个复选框——最简单的方法

python - 在 python 中使用 selenium 使用用户名和密码登录

python - 如何使用数据框中的值更好地构造 SQL 语句?

python - Pandas:用空白替换重复值 groupby 像

python - Scrapy - 获取 Javascript 变量的值

python - 在 Python 中通过 multiprocessing.Pipe() 异步发送和接收

python - 如何访问数据存储信息(交互式控制台)?

python - ImportError:没有名为 pbas 的模块

javascript - 如何将表单数据从外部html文件发送到django?

python - Unicode解码错误: 'utf8' codec can't decode byte 0xc3 in position 34: unexpected end of data