【问题标题】:How can I compound a if and for loop inside a print statement in Python [duplicate]如何在 Python 的 print 语句中复合 if 和 for 循环 [重复]
【发布时间】: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') 之类的操作。

标签: python generator


【解决方案1】:
print([x for x in set(l_rooms) if l_rooms.count(x)==1])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 2018-05-21
    相关资源
    最近更新 更多