我怎样才能缩短这一行..?

时间:2015-01-15 11:36:40

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

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

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

2 个答案:

答案 0 :(得分:0)

两条线更短,我认为更好的可读性:

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

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

答案 1 :(得分:0)

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

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

可以成为列表理解:

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