Python从二维列表中删除元素

Kar*_*lys 3 python arrays list max min

尝试从数组中的二维列表中删除最小值和最大值.我的代码:

myList = [[1, 3, 4], [2, 4, 4], [3, 4, 5]]
maxV = 0
minV = myList[0]0]
for list in myList:
   for innerlist in list:
      if innerlist > maxV:
         maxV = innerlist
      if innerlist < minV:
         minV = innerlist
   innerlist.remove(maxV)
   innerlist.remove(minV)
print(myList)
Run Code Online (Sandbox Code Playgroud)

这引起了我一些错误,我并不特别理解.我很确定innerlist不是数组而是普通变量.但我仍然认为应该以某种方式从二维列表中删除min和max元素.我的意思是我需要删除列表中最高和最低值的每个内部列表.LF帮忙!问候.

idj*_*jaw 11

只是为了显示一个更简单的方法来使用list comprehensions,sorted方法和slicing:

d = [[1, 3, 4], [2, 4, 4], [3, 4, 5]]

n = [sorted(l)[1:-1] for l in d]

print(n)

# [[3], [4], [4]]
Run Code Online (Sandbox Code Playgroud)

用于解决此问题的每个项目的一些阅读材料:

为了照顾重复,Padraic的这个答案做得非常好.

  • 但是4等于最大值 (2认同)