如何使用列表推导排除列表中的最大值

时间:2019-02-11 19:41:17

标签: python python-3.x

我有一个输入列表,我想创建另一个不包含最大值的列表,并获取新列表的总和

到目前为止,这是我的代码:

arr= list(map(int, input().rstrip().split()))[:5]
print(arr)
x=list(sum(arr[x] if x!= max(arr)))
print(x)

但是,当我输出它时会出现语法错误,我不确定代码中的问题在哪里。如果有人也可以解释如何使用列表推导,将很有帮助。

1 个答案:

答案 0 :(得分:0)

可以尝试:

l = [1,3,5,8,9]
l_copy = l.copy() # just not to mutate the original list
l_copy = l_copy.remove(max(l_copy))
res = sum(l_copy)

说明:

max(l_copy) # return the max value in l
l_copy = l_copy.remove(max(l_copy)) # remove the max value of the list

sum(l) # sum all list except the max value

请注意输入空列表。