我的代码:
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
?
答案 0 :(得分:3)
你不需要发电机。只需按原样打印设置:
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 []
或
{{1}}
答案 1 :(得分:2)
你可以print(set(a))
这样:
print
您当前代码无法正常工作的原因是因为time.Sleep
函数不会消耗生成器对象。
答案 2 :(得分:2)
打印只打印对象(它是一个生成器),它不会消耗它的数据。 您可以将其转换为列表,从而打印其值:
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^-----------------^