在列表列表中查找最小值

Finding minimum value in list of lists

我想在 Python 中的列表列表中找到最小值。示例:

ls = [[2,3,5],[8,1,10]]

ls中的最小值为1。我怎样才能以简单的方式获得它?

min_abs = min([min(l) for l in ls])
# find the min of each sublist, then find the global min
min(map(min, ls))
# 1

# flatten `ls`, then find the min
min(y for x in ls for y in x)
# 1

# use itertools.chain to flatten `ls`
min(itertools.chain.from_iterable(ls))
# 1

ls = [[2, 3, 5], [8, 1, 10]] * 10000

%timeit min(y for x in ls for y in x)            # 7.31 ms ± 64.9 µs
%timeit min([min(l) for l in ls])                # 6.24 ms ± 56.9 µs
%timeit min(map(min, ls))                        # 5.44 ms ± 151 µs
%timeit min(min(ls, key=min))                    # 5.28 ms ± 129 µs
%timeit min(itertools.chain.from_iterable(ls))   # 2.67 ms ± 62.5 µs

你可以试试这个:

res = min(min(ls, key=min))