开发者社区 问答 正文

如何删除列表中最小的元素?

根据我的列表: arr=[['Harsh', 20], ['Beria', 20], ['Varun', 19], ['Kakunami', 19], ['Vikas', 21]]

我必须删除包含最小数字的元素 即元素: ['Varun', 19], ['Kakunami', 19]

我尝试了以下代码:

arr=[['Harsh', 20], ['Beria', 20], ['Varun', 19], ['Kakunami', 19], ['Vikas', 21]]

arr.sort(key=lambda x: (x[1],x[0]))

min_value=min(arr,key=lambda x:x[1])

min_marks=min_value[1]

for i in arr:

if i[1]==min_marks:

    arr.remove(i)

但这没有给出期望的输出

展开
收起
游客6qcs5bpxssri2 2019-09-22 17:15:14 1762 分享 版权
1 条回答
写回答
取消 提交回答
  • arr = [['Harsh', 20], ['Beria', 20], ['Varun', 19], ['Kakunami', 19], ['Vikas', 21]]

    arr.sort(key=lambda x: (x[1], x[0]))

    min_value = min(arr,key=lambda x:x[1])

    min_marks = min_value[1]

    arr = [ elem for elem in arr if elem[1] != min_marks]

    在迭代时从这样的列表中删除元素并不是很好。相反,您可能希望形成一个索引列表以删除和使用该.remove()功能。

    2019-09-22 17:16:53
    赞同 展开评论
问答地址: