在Python中,删除二维列表中的最小值和最大值需要遍历列表,找到每个子列表中的最大值和最小值,然后从这些子列表中删除它们。以下是一个示例代码,展示了如何删除二维列表中每个子列表的最小值和最大值:
myList = [[1, 3, 4], [2, 4, 4], [3, 4, 5]]
maxV = float('-inf')
minV = float('inf')
for sublist in myList:
for value in sublist:
if value > maxV:
maxV = value
if value < minV:
minV = value
for sublist in myList:
if maxV in sublist:
sublist.remove(maxV)
if minV in sublist:
sublist.remove(minV)
print(myList)
这段代码首先初始化最大值和最小值为负无穷和正无穷,然后遍历`myList`中的每个子列表,找到最大值和最小值。之后,再次遍历`myList`,并从每个子列表中删除找到的最大值和最小值。
请注意,如果列表中有多个相同的最大值或最小值,这段代码只会删除找到的第一个。如果需要删除所有相同的最大值或最小值,代码需要进行相应的调整。
另外,如果你需要删除的是二维列表中的某一列而不是最大值和最小值,你可以使用列表推导式结合`enumerate`函数来实现。例如,如果你想要删除每一行的第二个元素(索引为1),你可以这样做:
myList = [[1, 3, 4], [2, 4, 4], [3, 4, 5]]
myList = [[sublist, sublist] for sublist in myList]
print(myList)
这段代码会生成一个新的列表,其中不包含原始列表中每个子列表的第二个元素。