繁体   English   中英

Python-为什么我不能在print函数中使用生成器?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM