python-输入的最短代码

提问

我正在尝试为条件输入尽可能短的代码.
条件:该数字应大于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 for x in (int(input()) for _ in range(int(input()))) if x > 0]