Largest Number Possible from List of Given Numbers Python (original) (raw)
Last Updated : 17 Jan, 2025
To find the largest number possible from a list of given numbers, we arrange the elements in such a way that their concatenation forms the largest possible number. This involves comparing the numbers based on how their string representations concatenate with each other. By sorting the numbers accordingly and then joining them, we can achieve the desired result.
**Using sorted()
**sorted()allows us to sort the list based on a custom key. By converting the numbers to strings, we can concatenate them in two orders and choose the order that produces the largest result.
Python `
from functools import cmp_to_key li= [23, 65, 98, 3, 4]
largest possible number in list
res = sorted(li, key = cmp_to_key(lambda i, j: -1 if str(j) + str(i) < str(i) + str(j) else 1)) print (''.join(map(str,res)))
`
**Explanation:
cmp_to_key()
converts the comparison function to a key for sorting.- **Lambda function checks if
str(j) + str(i)
is smaller thanstr(i) + str(j)
. If true,i
comes beforej
. sorted()
''.join()
concatenates the sorted numbers into a string.
Table of Content
In this approach, we generate all possible permutations of the numbers, join each permutation to form a number, and then choose the maximum of these numbers.
Python `
from itertools import permutations li = [23, 65, 98, 3, 4]
res = int(max((''.join(i) for i in permutations(str(i) for i in li)), key = int)) print (str(res))
`
**Explanation:
permutations(str(i) for i in li)
- **
''.join(i)
**combines the digits in each permutation to form a number. - **
max(..., key=int)
**selects the largest number by comparing the integer values of the permutations. - **
int()
**converts the result to an integer
In this method, we define a custom comparison function that compares two numbers based on their concatenated value in both possible orders. sorted() function then uses this comparison function to sort the list in descending order.
Python `
from functools import cmp_to_key li = [23, 65, 98, 3, 4]
custom comparison function
def compare(a, b): ab = int(str(a) + str(b)) ba = int(str(b) + str(a)) if ab > ba: return -1 elif ab < ba: return 1 else: return 0
res = sorted(li, key=cmp_to_key(compare)) print (''.join(map(str,res)))
`
**Explanation:
compare(a, b)
concatenates_a
_and _b
_in both orders, then compares them.sorted(li, key=cmp_to_key(compare))
sorts the list using the custom comparison.''.join(map(str, res))
concatenates the sorted numbers into a single string.
U**sing reduce()
This method combines the power of reduce() and a custom lambda function to perform the task in a concise manner. It sorts the numbers in descending order and then concatenates them using reduce()
.
Python `
from functools import reduce
li = [23, 65, 98, 3, 4]
combining the sorted elements into a single number using reduce() and lambda function
res = int(reduce(lambda x, y: x + y, map(str, sorted(li, key=lambda x: int(str(x)[0]), reverse=True)))) print(res)
`
**Explanation:
str(x)[0]
converts each number to a string and takes the first digit.key=lambda x: int(str(x)[0])
sorts the list _li based on the first digit of each number.map(str, ...)
converts the sorted numbers to strings so they can be concatenated.reduce(lambda x, y: x + y, ...)
combines the sorted strings into a single string by concatenating them.int(...)
converts the concatenated string into an integer.reverse=True
sorts the numbers in descending order based on the first digit.
Similar Reads
- Python Program to Find Largest Number in a List Finding the largest number in a list is a common task in Python. There are multiple way to do but the simplest way to find the largest in a list is by using Python's built-in max() function: Using max()Python provides a built-in max() function that returns the largest item in a list or any iterable. 3 min read
- Print all Strong Numbers in Given List - Python The task of printing all Strong numbers from a given list in Python involves iterating through the list and checking each number based on its digit factorial sum. A Strong number is a number whose sum of the factorials of its digits equals the number itself. For example, given a list a = [145, 375, 4 min read
- Position of maximum and minimum element in a list - Python In Python, lists are one of the most common data structures we use to store multiple items. Sometimes we need to find the position or index of the maximum and minimum values in the list. For example, consider the list li = [3, 5, 7, 2, 8, 1]. The maximum element is 8, and its index is 4.The minimum 3 min read
- Python | Indices of N largest elements in list Sometimes, while working with Python lists, we can have a problem in which we wish to find N largest elements. This task can occur in many domains such as web development and while working with Databases. We might sometimes, require to just find the indices of them. Let's discuss a certain way to fi 5 min read
- Python - Smallest integer possible from combination of list elements Given a list of integers, the task is to get smallest integer possible from the combination of list elements. This is one of the problems that is essential in a competitive point of view and this article discusses various shorthands to solve this problem in Python. Let’s discuss certain ways in whic 4 min read
- Python Program to Print Largest Even and Largest Odd Number in a List Auxiliary Given a list. The task is to print the largest even and largest odd number in a list. Examples: Input: 1 3 5 8 6 10 Output: Largest even number is 10 Largest odd number is 5 Input: 123 234 236 694 809 Output: Largest odd number is 809 Largest even number is 694 The first approach uses two 7 min read
- Print Numbers in an Interval - Python In this article, we are going to learn how to print numbers within a given interval in Python using simple loops, list comprehensions, and step-based ranges. For Example: Input : i = 2, j = 5Output : 2 3 4 5 Input : i = 10, j = 20 , s = 2Output : 10 12 14 16 18 20 Let’s explore different methods to 2 min read
- Python | Find groups of strictly increasing numbers in a list Given a list of integers, write a Python program to find groups of strictly increasing numbers. Examples: Input : [1, 2, 3, 5, 6] Output : [[1, 2, 3], [5, 6]] Input : [8, 9, 10, 7, 8, 1, 2, 3] Output : [[8, 9, 10], [7, 8], [1, 2, 3]] Approach #1 : Pythonic naive This is a naive approach which uses a 5 min read
- Python Program to Find Numbers Divisible by Another Number We are given a list of numbers and a number. We have to find all the numbers in the list that are divisible by the given single number. Examples: Input: list=[8, 14, 21, 36, 43], num=3Output: 21, 36, 57Input: list=[2, 17, 25, 31, 48, 55], num=5Output: 25, 55In this article, we will discuss the diffe 3 min read
- Python | Positions of maximum element in list Sometimes, while working with Python lists, we can have a problem in which we intend to find the position of maximum element of list. This task is easy and discussed many times. But sometimes, we can have multiple maximum elements and hence multiple maximum positions. Let's discuss a shorthand to ac 3 min read