Python 查找字典中最大值元组的键
在Python字典中找到最大值元组的键意味着确定与字典中所有元组中最大值相关联的键,这对于从数据中检索最重要或相关的信息非常有用。
示例
假设我们输入了一个包含元组值的字典。现在我们将使用上述方法找到输入字典中最大值元组的键。
输入
inputDict = {'hello': ("p", 2), 'tutorialspoint': ("c", 15), 'python': ("k", 8)}
输出
The key of the maximum value in a tuple: tutorialspoint
在上面的输入字典中,元组中的最大值是15,对应的键是 tutorialspoint 。
使用的方法
以下是完成此任务的各种方法:
- 使用列表推导、max()和values()函数
-
使用max()、values()和next()函数
方法1:使用列表推导、max()和values()函数
在这个方法中,我们将了解如何使用推导max()和min()函数来查找字典中最大值元组的键。
列表推导
当你希望基于现有列表的值建立一个新列表时,列表推导提供了一种更短、更简洁的语法。
new_list = [expression for item in iterable if condition]
max() 函数
max() 方法(返回可迭代对象中的最大值/最大的数字)。
max_value = max(iterable)
dict.values()函数
dict.values()方法提供了一个视图对象,按照插入的顺序显示字典中所有值的列表。
value_list = dictionary.values()
items()函数返回一个视图对象,即它以元组的形式包含字典的键值对,并存储在列表中。
步骤
以下是执行所需任务的算法/步骤:
- 创建一个变量来存储包含值为元组的输入字典。
-
打印输入字典。
-
将给定字典和键作为lambda函数传递,以找到字典的最大值。
-
通过使用items()函数和列表推导来迭代字典的键值对,获取具有以上最大值的键。
-
以元组的形式打印具有最大值的结果字典键。
示例
以下程序使用列表推导、max()和values()函数,返回元组中具有最大值的字典键。
# input dictionary having values as tuples
inputDict = {'hello': ("p", 2), 'tutorialspoint': ("c", 15), 'python': ("k", 8)}
# printing input dictionary
print("Input dictionary:", inputDict)
# getting the maximum value from the values of the input dictionary
# i.e, tuple
maximumValue = max(inputDict.values(), key=lambda k: k[1])
# getting key with maximum value using list comprehension
maxKey = [k for k, v in inputDict.items() if v == maximumValue][0]
# printing the resultant dictionary key of the maximum value in a tuple
print("The key of the maximum value in a tuple: ", maxKey)
输出
执行上述程序后,将生成以下输出结果
Input dictionary: {'hello': ('p', 2), 'tutorialspoint': ('c', 15), 'python': ('k', 8)}
The key of the maximum value in a tuple: tutorialspoint
方法2:使用max()、values()和next()函数
这种方法将演示如何在Python中使用max()、values()和next()函数来查找字典中最大值元组的键。
lambda函数
lambda函数是一个匿名函数,非常简洁。
lambda函数可以有任意数量的参数,但只能有一个表达式。
语法
lambda arguments : expression
next() 函数
返回迭代器中的下一个项,例如一个列表、字符串元组等。如果迭代器达到结尾,你可以添加一个默认的返回值来返回。
语法
next(iterable, default)
步骤
以下是执行所需任务的算法/步骤
- 创建一个变量来存储包含值为元组的输入字典。
-
打印输入字典。
-
通过使用lambda函数将给定字典和键传递给max()函数,获取字典的最大值。
-
使用next()函数遍历给定字典项,并使用上面的max变量找到具有最大值的键。
-
将最大值的结果字典键打印为元组。
示例
以下程序使用max()、values()和next()函数返回一个元组中具有最大值的字典键。
# input dictionary having values as tuples
inputDict = {'hello': ("p", 2), 'tutorialspoint': ("c", 15), 'python': ("k", 8)}
# printing input dictionary
print("Input dictionary:", inputDict)
# Getting maximum value from the dictionary using max() function
maximumValue = max(inputDict.values(), key=lambda k: k[1])
# Getting the maximum value key using the next() function
maxKey = next(k for k, v in inputDict.items() if v == maximumValue)
# printing the resultant dictionary key of the maximum value in a tuple
print("The key of the maximum value in a tuple: ", maxKey)
输出
执行程序后,上述程序将生成以下输出
Input dictionary: {'hello': ('p', 2), 'tutorialspoint': ('c', 15), 'python': ('k', 8)}
The key of the maximum value in a tuple: tutorialspoint
结论
在本文中,我们学习了两种不同的方法来找到字典中值最大的键。使用字典,我们学习了如何使用items()在字典的元素之间遍历。此外,我们还学习了如何使用next()函数将迭代器添加到字典中。最后但并非最不重要的是,我们学习了如何在max()函数中使用任何自定义函数作为键。