【发布时间】:2012-05-25 02:52:02
【问题描述】:
我正在尝试尽可能为带条件的输入制作最短的代码。
条件:数字应该大于 0。
输入: 第一个数字决定下一个输入的数量。
例如:
4
1
-2
3
-4
所以我想只追加到 list() 1 和 3。
这是我的代码:
n=int(input())
t=[]
for i in range(n):
x = int(input())
if(x>0):
t.append(x)
print(t)
我想知道它是否可以更短
我有想法,但它没有像我预期的那样工作 - “语法错误”:
n=int(input())
t=[x=int(input()) for x in range(n) if(x)>0)]
print(t)
编辑:忘记了。我正在使用python3.1...
【问题讨论】:
-
这个作业,
x=int(input()),不能在列表理解中进行。 -
OT:参与codegolf.com? :)
-
if语句中的额外括号是线路噪音。有关首选格式,请参阅 PEP 8。 -
@Pavel 我认为要在 codegolf 中获胜,你有合同义务使用 perl ;)
-
@Steven:很好。对于一个邪恶的变种来说这个怎么样......@ 987654328@。或者只是
filter(range,map(input,['']*input())),字符数相同,不需要多条语句。
标签: python optimization input python-3.x