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