【发布时间】:2021-03-12 22:00:52
【问题描述】:
我的元组列表如下所示:
[(0, 0), (3, 0), (3, 3), (0, 3), (0, 0), (0, 6), (3, 6), (3, 9), (0, 9), (0, 6), (6, 0), (9, 0), (9, 3), (6, 3), (6, 0), (0, 3), (3, 3), (3, 6), (0, 6), (0, 3)]
它的格式为 (X, Y),我想在其中获取此列表中所有 X 和 Y 的最大值和最小值。
应该是 min(X)=0, max(X)=9, min(Y)=0, max(Y)=9
但是,当我这样做时:
min(listoftuples)[0], max(listoftuples)[0]
min(listoftuples)[1], max(listoftuples)[1]
...对于 Y 值,显示的最大值为 3,这是不正确的。
为什么会这样?
【问题讨论】:
-
将
max应用于一个元组只会返回其中的最大值。例如,max((0,9))是9。因此,将max应用于元组列表只会返回具有最大值的元组。 -
这并不能解释问题。如下所述,问题的根源在于,当您对元组列表进行排序时,它首先按第一个元素排序,然后按下一个元素排序。所以, max(((0,1111),(9,3))) 产生 (0,1111) 因为 0 排在第一位。
-
@Kris “因此,将
max应用于元组列表只会返回具有最大值的元组。” -- 不,这是不正确的。 -
@Tim
max(((0,1111),(9,3)))->(9, 3)。也许你的意思是min? -
@wjandrea 抱歉,这是正确的。我忘记了排序的顺序。
标签: python python-3.x list tuples