Python - 从给定数字列表中获取最大可能的数字
在本文中,我们将学习如何从给定的数字列表中找到最大的可能数字。我们将看到两种不同的方法来解决这个问题。请按照以下步骤解决问题。
- 导入itertools模块用于排列方法。
- 用数字和空列表初始化列表。
- 迭代列表的排列。
- 连接所有组合并将结果添加到空列表。
- 使用max方法和int作为键从结果中查找最大数。
- 将字符串转换为整数并打印。
示例
让我们看看代码。
# importing the module import itertools # initializing the list numbers = [45, 35, 138, 43, 67] # result result = [] # permutations for permutation in itertools.permutations(str(number) for number in numbers): result.append(''.join(permutation)) # finding max maximum = max(result, key=int) # printing the max print(int(maximum))
如果运行上述代码,则会得到以下结果。
输出
67454335138
让我们看看另一种解决问题的方法。我们将使用sorted函数来解决这个问题。请按照以下步骤编写代码。
- 将列表传递给sorted函数。
- 编写一个名为get_key的函数,该函数接受两个参数。
- 如果str(first) + str(second) > str(second) + str(first),则返回-1,否则返回1。
- 使用join方法连接列表元素。
- 通过转换为整数来打印结果。
由于我们使用函数作为键,因此必须使用functools中的cmp_to_key方法将其转换为键。让我们看看代码。
示例
from functools import cmp_to_key # initializing the list numbers = [45, 35, 138, 43, 67] def get_key(first, second): if str(first) + str(second) > str(second) + str(first): return -1 return 1 # getting the result result = sorted(numbers, key=cmp_to_key(get_key)) # joining the result result = "".join(str(integer) for integer in result) # printing the result print(int(result))
如果运行上述代码,则会得到以下结果。
输出
67454335138
结论
如果您在本教程中遇到任何疑问,请在评论区提出。
广告