在 python 中搜索嵌套列表的最有效方法是什么?
What is the most efficient way to search nested list in python?
假设我有一个嵌套循环,其中列出了姓名为学生的特定科目的成绩
喜欢:
records = [[name, score]]
例如,假设我们有这样的列表:
records = [['a', 67], ['b', 64], ['c', 63], ['d', 59]]
所以我想在这里打印带有名称的最大值?
我仍然是 python 的菜鸟,所以如果您能以简单的方式进行解释,那就太好了。
提前致谢 <3
有多种方法可以做到这一点。
其中之一是使用内置函数 max 来查找其参数的最大值。在这种情况下是一个数组。由于我们想要获得分数的最大值,因此我们需要从数组中获取整数。我们可以通过指定一个键函数来做到这一点。
我们可以用 anonymous function lambda
像这样
records = [['a', 67], ['b', 64], ['c', 63], ['d', 59]]
print(max(records, key=lambda x: x[1]))
或者我们可以像这样使用定义的function
records = [['a', 67], ['b', 64], ['c', 63], ['d', 59]]
def getScore(x):
return x[1]
print(max(records,key=getScore))
有一种更简单或更容易理解的方法。使用库 operator 及其函数 item getter
import operator
records = [['a', 67], ['b', 64], ['c', 63], ['d', 59]]
print(max(records,key=operator.itemgetter(1)))
假设我有一个嵌套循环,其中列出了姓名为学生的特定科目的成绩 喜欢:
records = [[name, score]]
例如,假设我们有这样的列表:
records = [['a', 67], ['b', 64], ['c', 63], ['d', 59]]
所以我想在这里打印带有名称的最大值? 我仍然是 python 的菜鸟,所以如果您能以简单的方式进行解释,那就太好了。 提前致谢 <3
有多种方法可以做到这一点。 其中之一是使用内置函数 max 来查找其参数的最大值。在这种情况下是一个数组。由于我们想要获得分数的最大值,因此我们需要从数组中获取整数。我们可以通过指定一个键函数来做到这一点。
我们可以用 anonymous function lambda 像这样
records = [['a', 67], ['b', 64], ['c', 63], ['d', 59]]
print(max(records, key=lambda x: x[1]))
或者我们可以像这样使用定义的function
records = [['a', 67], ['b', 64], ['c', 63], ['d', 59]]
def getScore(x):
return x[1]
print(max(records,key=getScore))
有一种更简单或更容易理解的方法。使用库 operator 及其函数 item getter
import operator
records = [['a', 67], ['b', 64], ['c', 63], ['d', 59]]
print(max(records,key=operator.itemgetter(1)))