【发布时间】:2019-01-21 19:09:00
【问题描述】:
我正在尝试将其合并为一行 -
for x in set(l_rooms):
if l_rooms.count(x) == 1:
print(x)
我试过了:
print(x for x in set(l_rooms) if l_rooms.count(x)== 1)
但这只会产生一个生成器对象,实际上并不打印
【问题讨论】:
-
在生成器周围添加列表括号;这会强制列表理解来制作集合。
-
你为什么想要把它变成一个单线?你想要什么输出?如果您想要与原始单独的
print语句相同的输出,每个值在其自己的行上打印为它的str,而不是每个值打印为它的repr(带有引号、任何特殊字符转义等) ) 在大列表显示中的逗号之间,您必须执行print(*(x for x in set(l_rooms) if l_rooms.count(x)==1), sep='\n')之类的操作。