Open In App

Python | Convert list of numerical string to list of Integers

Improve
Improve
Like Article
Like
Save
Share
Report

Many times, the data we handle might not be in the desired form for any application and has to go through the stage of preprocessing. One such kind of form can be a number in the form of a string that too is a list in the list and we need to segregate it into digit-separated integers. Let’s discuss certain ways in Python in which this problem can be solved. 

Convert list of numerical string to list of Integers using list comprehension 

This problem can be dealt with list comprehension, as a shorthand for generic loops that we would require to run to perform this particular task by iterating each list’s each character of the string and converting to an integer. 

Python3




# initializing list
test_list = [['24'], ['45'], ['78'], ['40']]
 
# printing original list
print("The original list : " + str(test_list))
 
# using list comprehension
# converting string list to integer list
res = [[int(i) for i in sub] for i in test_list for sub in i]
 
# print result
print("The list after conversion : " + str(res))


Output

The original list : [['24'], ['45'], ['78'], ['40']]
The list after conversion : [[2, 4], [4, 5], [7, 8], [4, 0]]

Convert list of numerical string to list of Integers using map() + list comprehension 

The task performed in the above function can also be reduced to include the map function which binds the conversion to an integer to a function and the rest of the task is performed by the list comprehension function itself. 

Python3




# Python3 code to demonstrate
# converting string list to integer list
# using list comprehension + map()
 
# initializing list
test_list = [['24'], ['45'], ['78'], ['40']]
 
# printing original list
print("The original list : " + str(test_list))
 
# using list comprehension + map()
# converting string list to integer list
res = [list(map(int, list(sub[0]))) for sub in test_list if sub]
 
# print result
print("The list after conversion : " + str(res))


Output

The original list : [['24'], ['45'], ['78'], ['40']]
The list after conversion : [[2, 4], [4, 5], [7, 8], [4, 0]]

Convert list of numerical string to list of Integers using lambda expression

The list comprehension inside the lambda function iterates through each character of the string and converts it to an integer. This lambda function is then applied to each sublist in the list using the map() function.

Python3




# Python3 code to demonstrate
# converting string list to integer list
  
# initializing list
test_list = [['24'], ['45'], ['78'], ['40']]
# printing original list
print("The original list : " + str(test_list))
# apply the lambda function to each element in test_list
res = list(map(lambda x: [int(i) for i in x[0]], test_list))
# print result
print("The list after conversion : " + str(res))
#This code is contributed by Edula Vinay Kumar Reddy


Output

The original list : [['24'], ['45'], ['78'], ['40']]
The list after conversion : [[2, 4], [4, 5], [7, 8], [4, 0]]

Convert list of numerical string to list of Integers using the reduce() function

Initialize an empty list to store the final result. Traverse through each sublist of the given list. For each sublist, apply the reduce() function to concatenate all the strings in that sublist. Convert the concatenated string to an integer list by iterating over each character of the string and converting it to an integer. Append the integer list to the result list. Return the final result list.

Python3




# import the reduce() function from the functools module
from functools import reduce
# initializing list
 
test_list = [['24'], ['45'], ['78'], ['40']]
 
# printing original list
print("The original list : " + str(test_list))
 
# using the reduce() function to concatenate each string
#in the nested list, and then converting each concatenated
#string to an integer
res = [[int(ch) for ch in reduce(lambda x, y: x+y,
                                 ele)] for ele in test_list]
# print result
print("The list after conversion : " + str(res))


Output

The original list : [['24'], ['45'], ['78'], ['40']]
The list after conversion : [[2, 4], [4, 5], [7, 8], [4, 0]]

Convert list of numerical string to list of Integers using Heapq method

Import the heapq module. Initialize a nested list with strings as elements. Use the heapq.merge() function to concatenate the nested lists into a single list of strings, and store the result in merged_list. Use a list comprehension to convert each string in merged_list to a list of integers and store the result in res. Print the original list and the modified list.

Python3




import heapq
 
# initializing list
test_list = [['24'], ['45'], ['78'], ['40']]
# printing original list
print("The original list : " + str(test_list))
 
# using heapq.merge() to concatenate the nested lists
merged_list = list(heapq.merge(*test_list))
 
# converting the concatenated strings to integers
res = [[int(ch) for ch in str(ele)] for ele in merged_list]
 
# print result
print("The list after conversion : " + str(res))
#This code is contributed by Rayudu.


Output

The original list : [['24'], ['45'], ['78'], ['40']]
The list after conversion : [[2, 4], [4, 0], [4, 5], [7, 8]]

Convert a list of numerical strings to list of Integers using nested loops

Initialize an empty list to store the final result. Traverse through each sublist of the given list. For each sublist, initialize an empty list to store the integer representation of the string characters. Iterate each character in the string and convert it to an integer using the int() function. Append the integer to the inner list. Append the inner list to the result list. Return the final result list.

Python3




print("GFG")
# initializing list
test_list = [['24'], ['45'], ['78'], ['40']]
# printing original list
print("The original list: " + str(test_list))
 
# convert string list to integer list
res = []
for sublist in test_list:
    inner_list = []
    for string in sublist:
        int_list = [int(char) for char in string]
        inner_list.extend(int_list)
    res.append(inner_list)
 
# print result
print("The list after conversion: " + str(res))


Output

GFG
The original list: [['24'], ['45'], ['78'], ['40']]
The list after conversion: [[2, 4], [4, 5], [7, 8], [4, 0]]


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