[英]Python - Why can't I use generators inside the print function?
我的代码:
a=[3,3,3,3,3,3,45,4,5,2,2,4,3,3,3,3]
print(x for x in set(a))
输出:
<generator object <genexpr> at 0xb62dccec>
为什么? 而且我如何用一行打印set
?
您不需要发电机。 只需按原样打印集即可:
print(set(a))
如果您想对每一项使用某些功能
print(*(something(x) for x in set(a)), sep=', ') # unpacks generator, bare
甚至
print({something(x) for x in set(a)}) # creates new set, surrounded by {}
要么
print([something(x) for x in set(a)]) # creates new list, surrounded by []
您可以这样print
:
print(set(a))
您当前的代码不起作用的原因是因为print
函数不使用生成器对象。
打印只是打印对象(它是一个生成器),它不消耗其数据。 您可以将其转换为列表,然后打印其值:
a = [3,3,3,3,3,3,45,4,5,2,2,4,3,3,3,3]
print([x for x in set(a)])
# here^-----------------^
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.