开发者社区> 问答> 正文

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

根据我的列表: 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 1671 0
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
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载