📜  Python – 列表元素组合中可能的最小整数

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

Python – 列表元素组合中可能的最小整数

给定一个整数列表,任务是从列表元素的组合中获取可能的最小整数。从竞争的角度来看,这是必不可少的问题之一,本文讨论了在Python中解决此问题的各种速记。让我们讨论一些可以解决这个问题的方法。

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

# Python code to demonstrate 
# Smallest number from list
# using sorted() + lambda
import functools
  
# initializing list 
test_list = [23, 65, 98, 3, 4]
  
# printing original list
print ("The original list is : " + str(test_list))
  
# lambda for custom operation
custom = lambda i, j: -1 if str(j) + str(i) > str(i) + str(j) else 1
  
# using sorted() + custom function
# Smallest number from list 
res = sorted(test_list, key = functools.cmp_to_key(custom))
  
  
# printing result 
print ("The smallest possible number : " + "".join(map(str, res)))
输出 :
The original list is : [23, 65, 98, 3, 4]
The smallest possible number : 23346598

方法#2:使用itertools.permutation() + join() + min()

itertools.permutation可用于获得可能的排列,并且 min函数在转换为整数后选择它的最小值,作为连接函数给出的连接输出的结果。

# Python3 code to demonstrate 
# Smallest number from list
# using itertools.permutation() + join() + min()
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() + min()
# Smallest number from list
res = int(min((''.join(i) for i in permutations(str(i) 
                     for i in test_list)), key = int))
  
# printing result 
print ("The smallest possible number : " + str(res))
输出 :
The original list is : [23, 65, 98, 3, 4]
The smallest possible number : 23346598