我正在尝试解决以前已经解决但现在使用列表推导的问题。问题很简单,我有一个列表,我想使用列表理解将其反转
定义第一个列表很容易,但是当我添加倒排的列表时,会给我标题中的错误。我知道我们不应该在列表推导中添加内容,但是我不知道要输入什么。
v=[]
p=[]
def listt():
v=[int(input('Digit element\n'))for j in range(0,int(input('Digit number of elements')))]
return v
print(listt())
def invert_list(v):
p=[p.append(v[j]) for j in range(len(v),-1,-1)]
return p
print(invert_list(v))
答案 0 :(得分:3)
尝试使用此方法代替p=[p.append(v[j]) for j in range(len(v),-1,-1)]
:
p=[v[j] for j in range(len(v),-1,-1)]
答案 1 :(得分:1)
做事时-
p=[p.append(v[j]) for j in range(len(v),-1,-1)]
p
不存在,因此错误。
您可以执行以下操作-
def invert_list(v):
p = []
for j in range(len(v)-1,-1,-1):
p.append(v[j])
return p
答案 2 :(得分:1)
p
是局部变量;您不能在它存在之前对其进行追加。
尚不清楚为什么要使用全局变量p
和v
(请注意,listt
不会修改全局v
)。
def listt():
return [int(input('Digit element\n'))for j in range(0,int(input('Digit number of elements')))]
def invert_list(v):
return [v[j] for j in range(len(v)-1,-1,-1)]
x = listt()
print(x)
print(invert_list(x))