Monday, November 18, 2024
Google search engine
HomeLanguagesPython | Convert None to empty string

Python | Convert None to empty string

Sometimes, while working with Machine Learning, we can encounter None values and we wish to convert them to an empty string for data consistency. This and many other utilities can require a solution to this problem. Let’s discuss certain ways in which this problem can be solved.

Method #1: Using lambda 

This task can be performed using the lambda function. In this, we check for the string for None or an empty string using the or operator and replace the None values with an empty string. 

Python3




# Python3 code to demonstrate working of
# Converting None to empty string
# Using lambda
 
# initializing list of strings
test_list = ["Geeks", None, "CS", None, None]
 
# printing original list
print("The original list is : " + str(test_list))
 
# using lambda
# Converting None to empty string
conv = lambda i : i or ''
res = [conv(i) for i in test_list]
 
# printing result
print("The list after conversion of None values : " + str(res))


Output : 

The original list is : ['Geeks', None, 'CS', None, None]
The list after conversion of None values : ['Geeks', '', 'CS', '', '']

Time Complexity: O(n) where n is the number of elements in the string list. The lambda is used to perform the task and it takes O(n) time.
Auxiliary Space: O(n) additional space of size n is created where n is the number of elements in the test list.

Method #2: Using str() 

Simply the str function can be used to perform this particular task because None also evaluates to a “False” value and hence will not be selected and rather a string converted false which evaluates to an empty string is returned. 

Python3




# Python3 code to demonstrate working of
# Converting None to empty string
# Using str()
 
# initializing list of strings
test_list = ["Geeks", None, "CS", None, None]
 
# printing original list
print("The original list is : " + str(test_list))
 
# using str()
# Converting None to empty string
res = [str(i or '') for i in test_list]
 
# printing result
print("The list after conversion of None values : " + str(res))


Output : 

The original list is : ['Geeks', None, 'CS', None, None]
The list after conversion of None values : ['Geeks', '', 'CS', '', '']

Method #3 : Using map()
We can also use the map function to convert None values to empty strings.

Python3




# Python3 code to demonstrate working of
# Converting None to empty string
# Using map()
 
# initializing list of strings
test_list = ["Geeks", None, "CS", None, None]
 
# printing original list
print("The original list is : " + str(test_list))
 
# Using map()
# Converting None to empty string
res = list(map(lambda x: x if x is not None else "", test_list))
 
# printing result
print("The list after conversion of None values : " + str(res))
#This code is contributed by Edula Vinay Kumar Reddy


Output

The original list is : ['Geeks', None, 'CS', None, None]
The list after conversion of None values : ['Geeks', '', 'CS', '', '']

All the above example code has O(n) time complexity, where n is the number of elements in the list and O(n) space complexity.

Method 4: using list comprehension with a ternary operator:

  • Printing original list
  • Using list comprehension Converting None to an empty string.
  • Printing result

Python3




test_list = ["Geeks", None, "CS", None, None]
 
# printing original list
print("The original list is: " + str(test_list))
 
# using list comprehension
# Converting None to empty string
res = ["" if i is None else i for i in test_list]
 
# printing result
print("The list after conversion of None values: " + str(res))


Output

The original list is: ['Geeks', None, 'CS', None, None]
The list after conversion of None values: ['Geeks', '', 'CS', '', '']

Time complexity: O(n), where n is the length of the input list test_list.
Auxiliary space: O(n), since a new list is created to store the converted values.

Method 5:Using for loop 

This program replaces all occurrences of None with an empty string in a given list of strings.

Algorithm:

  1. Iterate over the elements of the list using a for loop and range() function.
  2. Check if the current element is None using the is operator.
  3. If the current element is None, replace it with an empty string.
  4. Print the modified list to the console.

Python3




lst = ['Geeks', None, 'CS', None, None]
 
for i in range(len(lst)):
    if lst[i] is None:
        lst[i] = ''
 
print("The list after conversion of None values :", lst)


Output

The list after conversion of None values : ['Geeks', '', 'CS', '', '']

Time Complexity: O(N)

The time complexity of this algorithm is O(n), where n is the length of the input list, because we only need to iterate over the list once.

Auxiliary Space: O(N)

The space complexity of this algorithm is also O(n), because we modify the input list in-place and do not create any additional data structures.

RELATED ARTICLES

Most Popular

Recent Comments