【问题标题】:How Can I Short this lines..?我怎样才能缩短这条线..?
【发布时间】:2015-03-13 19:02:27
【问题描述】:
lines = []
while True:
    value1 = raw_input("\t ")
    if value1:
        lines.append(value1.upper())
    else:
        break

尽可能使用 lambda() 或任何我必须使代码尽可能短的东西来做短......

【问题讨论】:

  • 这不是CodeGolf.SE。也许你应该在那里尝试一下。
  • line 是如何变成lines 的?
  • 为什么要缩短它?..
  • @dmg:不要在代码高尔夫网站上尝试......我很确定这也是一个无效的问题。
  • @Bair 好吧,改写为“使用 python 从标准输入读取行,提示带有一个选项卡并附加到列表”或类似的东西。它甚至可能有一个答案。

标签: python python-2.7 python-3.x


【解决方案1】:

两行更短,我认为可读性更好:

lines = []
value1 = raw_input("\t ")
while value1:
    lines.append(value1.upper())
    value1 = raw_input("\t ")

我们不使用if-else 子句退出循环,而是检查循环中的条件,尽管这会使value1 的范围超出while 循环的范围。虽然这在许多情况下都很好,但在某些情况下会更糟。

【讨论】:

    【解决方案2】:

    您可以将 iter 与在这种情况下为空字符串的哨兵值一起使用

    lines = []
    for value in iter(raw_input, ""):
        if value:
            lines.append(value.upper())
    

    这可以变成一个列表理解:

    lines = [value.upper() for value in iter(raw_input, "") if value]
    

    【讨论】:

    • @ParthMehta。是的,我很确定它会;)
    猜你喜欢
    • 1970-01-01
    • 2020-10-08
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多