我试图得到元组列表中最高的4个值,并将它们放入一个新列表中。但是,如果有两个元组具有相同的值,我希望取数字最小的元组。你知道吗
列表最初如下所示:
[(9, 20), (3, 16), (54, 13), (67, 10), (2, 10)...]
我希望新的列表如下:
[(9,20), (3,16), (54, 13), (2,10)]
这是我目前的代码有什么建议吗?你知道吗
sorted_y = sorted(sorted_x, key=lambda t: t[1], reverse=True)[:5]
sorted_z = []
while n < 4:
n = 0
x = 0
y = 0
if sorted_y[x][y] > sorted_y[x+1][y]:
sorted_z.append(sorted_y[x][y])
print(sorted_z)
print(n)
n = n + 1
elif sorted_y[x][y] == sorted_y[x+1][y]:
a = sorted_y[x]
b = sorted_y[x+1]
if a > b:
sorted_z.append(sorted_y[x+1][y])
else:
sorted_z.append(sorted_y[x][y])
n = n + 1
print(sorted_z)
print(n)
编辑:当谈到最低值时,我指的是元组第二个值中的最高值,如果两个第二个值相同,我想取两个值中最低的第一个值。你知道吗
你可以试试这个:
输出:
那
groupby
呢?你知道吗输出:
说明:
第一个元素按第二个元素的值降序排列数据。
groupby
然后将它们放入组中,其中组中的每个tuple
对于第二个元素具有相同的值。你知道吗使用
islice
,我们选取前四个组,并按照第一个元素的值按升序对每个组进行排序。取每组的第一个值,我们就得到了答案。你知道吗相关问题 更多 >
编程相关推荐