sorted(vals)[-2]
import heapq n = 2 heapq.nlargest(n, vals)[n-1]
swapIfGt = lambda xs, q: xs if xs[0] >= q else sorted([q]+xs[1:]) n = 2 reduce(swapIfGt, vals, [None]*n)[0]