对于具有负整数的列表,默认情况下 Set是反向排序的


n = int(input())
arr = list(map(int, input().split()))
s = set(arr)
print(s)
print(list(s)[len(s) - 2])
输入>:
4
57 57 -57 57

:

{57, -57}
57

我试图找到给定列表中的第二大数。在上面的代码中,集合是反向排序的,这是不应该的。为什么会这样?

Aset没有任何类型的已定义顺序。您需要将集合转换为list,然后显式地对其排序。sorted将自动生成一个列表。

print(sorted(s)[-2] if len(s) >= 2 else None)

相关内容

最新更新