Open In App

Python – Maximum of String Integer list

Improve
Improve
Like Article
Like
Save
Share
Report

Sometimes, while working with data, we can have a problem in which we receive a series of lists with data in string format, which we wish to find the max of each string list integer. Let’s discuss certain ways in which this task can be performed.

Method #1 : Using loop + int() 
This is the brute force method to perform this task. In this, we run a loop for the entire list, convert each string to integer and perform maximization listwise and store in a separate list.

Python3




# Python3 code to demonstrate working of
# Maximum of String Integer
# using loop + int()
 
# initialize list
test_list = [['1', '4'], ['5', '6'], ['7', '10']]
 
# printing original list
print("The original list : " + str(test_list))
 
# Maximum of String Integer
# using loop + int()
res = []
for sub in test_list:
    par_max = 0
    for ele in sub:
        par_max = max(par_max, int(ele))
    res.append(par_max)
 
# printing result
print("List after maximization of nested string lists : " + str(res))


Output

The original list : [['1', '4'], ['5', '6'], ['7', '10']]
List after maximization of nested string lists : [4, 6, 10]

Time Complexity: O(n*n), where n is the length of the input list. This is because we’re using the loop + int() which has a time complexity of O(n*n) in the worst case.
Auxiliary Space: O(n), as we’re using additional space res other than the input list itself with the same size of input list.

 Method #2 : Using max() + int() + list comprehension 
This is the shorthand with the help of which this task can be performed. In this, we run a loop on lists using list comprehension and extract maximization using max().
 

Python3




# Python3 code to demonstrate working of
# Maximum of String Integer
# using max() + int() + list comprehension
 
# initialize list
test_list = [['1', '4'], ['5', '6'], ['7', '10']]
 
# printing original list
print("The original list : " + str(test_list))
 
# Maximum of String Integer
# using max() + int() + list comprehension
res = [max(int(ele) for ele in sub) for sub in test_list]
 
# printing result
print("List after maximization of nested string lists : " + str(res))


Output : 

The original list : [['1', '4'], ['5', '6'], ['7', '10']]
List after maximization of nested string lists : [4, 6, 10]

 

Time Complexity: O(n*n) where n is the number of elements in the string list. The max() + int() + list comprehension is used to perform the task and it takes O(n*n) time.
Auxiliary Space: O(n) additional space of size n is created where n is the number of elements in the res test_list.

Method #3 : Using map() 

Another approach that can be used to find the maximum of a list of string integers is by using the map() function to convert the strings to integers, and then using the max() function to find the maximum value.

Python3




# Python3 code to demonstrate working of
# Maximum of String Integer
# using map() and max()
  
# initialize list
test_list = [['1', '4'], ['5', '6'], ['7', '10']]
  
# printing original list
print("The original list : " + str(test_list))
  
# Maximum of String Integer
# using map() and max()
res = [max(map(int, sub)) for sub in test_list]
  
# printing result
print("List after maximization of nested string lists : " + str(res))
#This code is contributed by Edula Vinay Kumar Reddy


Output

The original list : [['1', '4'], ['5', '6'], ['7', '10']]
List after maximization of nested string lists : [4, 6, 10]

The time and Auxiliary space of this approach is O(n) where n is the number of elements in the list.

Method #4 : Using map() and lambda function:

Python3




test_list = [['1', '4'], ['5', '6'], ['7', '10']]
res = list(map(lambda x: max(map(int, x)), test_list))
print("List after maximization of nested string lists : " + str(res))
#This code is contributed by pinjala Jyothi.


Time Complexity: O(N)
Auxiliary Space : O(N)



Last Updated : 09 Apr, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads