Python 在列表列表中查找最小值
我想在Python中的列表列表中找到最小的值。例如:Python 在列表列表中查找最小值,python,list,minimum,Python,List,Minimum,我想在Python中的列表列表中找到最小的值。例如: ls = [[2,3,5],[8,1,10]] ls中的最小值为1。我怎样才能用一种简单的方式得到它 min_abs = min([min(l) for l in ls]) 您可以简单地尝试以下方法: res = min(min(ls, key=min)) min(ls中的元素代表subls中的元素)到目前为止您尝试了什么?请阅读建议的dupe()与此问题关系不大。@cs95啊,很抱歉我没有看到,如果找到合适的dupe(我自己找不
ls = [[2,3,5],[8,1,10]]
ls
中的最小值为1
。我怎样才能用一种简单的方式得到它
min_abs = min([min(l) for l in ls])
您可以简单地尝试以下方法:
res = min(min(ls, key=min))
min(ls中的元素代表subls中的元素)
到目前为止您尝试了什么?请阅读建议的dupe()与此问题关系不大。@cs95啊,很抱歉我没有看到,如果找到合适的dupe(我自己找不到),请务必关闭它。这是一个更一般的情况,但如果这对你有好处,那对我也有好处。@jdehesa这不是一个完美的骗局,只是更一般一点。我将继续并再次关闭它。您可以跳过[
和]
,这样可以避免临时列表。像这样构建最小值列表比实际需要的更浪费。有关计时比较,请参阅。它有重复,但不适用于这个确切的问题@DeveshKumarSingh似乎是一种自我问答的尝试,所以我发布了我认为是不错的选择。
# 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))