📜  Python|给定数字列表中可能的最大数字

📅  最后修改于: 2022-05-13 01:55:34.105000             🧑  作者: Mango

Python|给定数字列表中可能的最大数字

给定一个数字列表,任务是从列表中给定的元素中找到可能的最大数字。

这是从竞争的角度来看必不可少的问题之一,本文讨论了在Python中解决此问题的各种速记。让我们讨论一些可以解决这个问题的方法。

方法 #1:使用sorted() + lambda
上述函数的组合可用于执行此任务。 sorted函数执行转换为字符串的列表索引的反向排序,而 lambda 函数处理转换和迭代操作。

# Python code to demonstrate 
# largest possible number in list
# using sorted() + lambda
from functools import cmp_to_key
  
# initializing list 
test_list = [23, 65, 98, 3, 4]
  
# printing original list
print ("The original list is : " + str(test_list))
  
# using sorted() + lambda
# largest possible number in list 
res = sorted(test_list, key = cmp_to_key(lambda i, j: -1 
                if str(j) + str(i) < str(i) + str(j) else 1))
  
# printing result 
print ("The largest possible number : " + ''.join(map(str,res)))
输出:
The original list is : [23, 65, 98, 3, 4]
The largest possible number : 98654323


方法#2:使用itertools.permutation() + join() + max()
itertools.permutation 可用于获得可能的排列,并且 max函数在转换为整数后选择它的最大值,作为连接函数给出的连接输出的结果。

# Python3 code to demonstrate 
# largest possible number in list
# using itertools.permutation() + join() + max()
from itertools import permutations
  
# initializing list 
test_list = [23, 65, 98, 3, 4]
  
# printing original list
print ("The original list is : " + str(test_list))
  
# using itertools.permutation() + join() + max()
# largest possible number in list 
res = int(max((''.join(i) for i in permutations(str(i) 
                     for i in test_list)), key = int))
  
# printing result 
print ("The largest possible number : " +  str(res))
输出:
The original list is : [23, 65, 98, 3, 4]
The largest possible number : 98654323