Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何查找列表中第二个元素的最小值_Python_List_Algorithm - Fatal编程技术网

Python 如何查找列表中第二个元素的最小值

Python 如何查找列表中第二个元素的最小值,python,list,algorithm,Python,List,Algorithm,我的清单如下: a = [ [8, 12], [13, 9], [2, 5], [1, 10], [13, 13] ] 如何找到a[2][1]的5。我想找到子列表第二个元素的最小值 这是我的代码: min = a[0][1] for i in range(len(a)): temp = a[i][1] if temp < min: min = temp min=a[0][1] 对于范围内的i(len(a)): 温度=a[i][1] 如果温度1,则sub[1]用于数据中的

我的清单如下:

a = [ [8, 12], [13, 9], [2, 5], [1, 10], [13, 13] ]
如何找到
a[2][1]
5
。我想找到子列表第二个元素的最小值

这是我的代码:

min = a[0][1]
for i in range(len(a)):
  temp = a[i][1]
  if temp < min:
    min = temp
min=a[0][1]
对于范围内的i(len(a)):
温度=a[i][1]
如果温度<最小值:
最小值=温度

实现此代码的好方法(代码行数较少)是什么?

您可以使用带有参数
键的内置函数
min

a = [ [8, 12], [13, 9], [2, 5], [1, 10], [13, 13] ]
min(a, key=lambda x: x[1])[1]
输出:

5

您可以将内置函数
min
与参数
键一起使用

a = [ [8, 12], [13, 9], [2, 5], [1, 10], [13, 13] ]
min(a, key=lambda x: x[1])[1]
输出:

5

您可以创建一个生成器,该生成器使用以下命令获取每个子列表的第二个元素:

sub[1] for sub in data
如果不是所有子列表都至少有两个元素,我们可以添加一个筛选条件:

min(sub[1] for sub in data if len(sub) > 1)

min(如果len(sub)>1,则sub[1]用于数据中的sub)
您可以创建一个生成器,该生成器使用以下命令获取每个子列表的第二个元素:

sub[1] for sub in data
如果不是所有子列表都至少有两个元素,我们可以添加一个筛选条件:

min(sub[1] for sub in data if len(sub) > 1)

min(sub[1]用于数据中的sub,如果len(sub)>1)
您可以用另一种方式查看它

  • 筛选以仅获取秒元素,以下是一些方法

    seconds = [v[1] for v in a]
    seconds = map(itemgetter(1), a)
    
  • 把这辆车开过去

    min_val = min(seconds)
    
短路结果

min_val = min(map(itemgetter(1), a))

你可以用另一种方式来看待它

  • 筛选以仅获取秒元素,以下是一些方法

    seconds = [v[1] for v in a]
    seconds = map(itemgetter(1), a)
    
  • 把这辆车开过去

    min_val = min(seconds)
    
短路结果

min_val = min(map(itemgetter(1), a))

关于
min(sub[1]表示数据中的sub)
?定义“更好”。只要列表不按第二个元素排序,就没有比在孔列表上迭代更好(更快)的方法。“更好”的可能解释:a)用尽可能少的代码行,b)用尽可能少的字符,c)“最容易”为其他程序员阅读…重复:您只需将
max
替换为
min
min(sub[1]表示sub-in-data)
?定义“更好”。只要列表不按第二个元素排序,就没有比在孔列表上迭代更好(更快)的方法。“更好”的可能解释:a)用尽可能少的代码行,b)用尽可能少的字符,c)“最容易”为其他程序员阅读…重复:您只需将
max
替换为
min