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
test_list = [[ '24' ], [ '45' ], [ '78' ], [ '40' ]]
print ( "The original list : " + str (test_list))
res = [[ int (i) for i in sub] for i in test_list for sub in i]
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
test_list = [[ '24' ], [ '45' ], [ '78' ], [ '40' ]]
print ( "The original list : " + str (test_list))
res = [ list ( map ( int , list (sub[ 0 ]))) for sub in test_list if sub]
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
test_list = [[ '24' ], [ '45' ], [ '78' ], [ '40' ]]
print ( "The original list : " + str (test_list))
res = list ( map ( lambda x: [ int (i) for i in x[ 0 ]], test_list))
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 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
from functools import reduce
test_list = [[ '24' ], [ '45' ], [ '78' ], [ '40' ]]
print ( "The original list : " + str (test_list))
res = [[ int (ch) for ch in reduce ( lambda x, y: x + y,
ele)] for ele in test_list]
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
test_list = [[ '24' ], [ '45' ], [ '78' ], [ '40' ]]
print ( "The original list : " + str (test_list))
merged_list = list (heapq.merge( * test_list))
res = [[ int (ch) for ch in str (ele)] for ele in merged_list]
print ( "The list after conversion : " + str (res))
|
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" )
test_list = [[ '24' ], [ '45' ], [ '78' ], [ '40' ]]
print ( "The original list: " + str (test_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 ( "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]]
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape,
GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out -
check it out now!
Last Updated :
26 May, 2023
Like Article
Save Article