Python Program to convert String to Uppercase under the Given Condition
Given a String list, the task is to write a Python program to convert uppercase strings if the length is greater than K.
Examples:
Input : test_list = ["Gfg", "is", "best", "for", "geeks"], K = 3 Output : ['Gfg', 'is', 'BEST', 'for', 'GEEKS'] Explanation : Best has 4 chars, hence BEST is uppercased.
Input : test_list = ["Gfg", "is", "best", "for", "geeks"], K = 4 Output : ['Gfg', 'is', 'best', 'for', 'GEEKS'] Explanation : geeks has 5 chars [greater than 4], hence GEEKS is uppercased.
Method #1 : Using upper() + loop
In this, we perform the task of uppercasing using upper(), and conditional statements for greater are checked using a loop.
# Python3 code to demonstrate working of
# Conditional Uppercase by size
# Using upper() + loop
# initializing list
test_list = ["Gfg", "is", "best", "for", "geeks"]
# printing original list
print("The original list is : " + str(test_list))
# initializing K
K = 3
res = []
for ele in test_list:
# check for size
if len(ele) > K:
res.append(ele.upper())
else:
res.append(ele)
# printing result
print("Modified Strings : " + str(res))
Output
The original list is : ['Gfg', 'is', 'best', 'for', 'geeks'] Modified Strings : ['Gfg', 'is', 'BEST', 'for', 'GEEKS']
Time Complexity: O(n)
Auxiliary Space: O(n)
Method #2: Using list comprehension
In this, the task of iteration is performed inside list comprehension to act as shorthand to the similar method as above.
# Python3 code to demonstrate working of
# Conditional Uppercase by size
# Using list comprehension
# initializing list
test_list = ["Gfg", "is", "best", "for", "geeks"]
# printing original list
print("The original list is : " + str(test_list))
# initializing K
K = 3
# list comprehension for one liner solution
res = [ele.upper() if len(ele) > K else ele for ele in test_list]
# printing result
print("Modified Strings : " + str(res))
Output
The original list is : ['Gfg', 'is', 'best', 'for', 'geeks'] Modified Strings : ['Gfg', 'is', 'BEST', 'for', 'GEEKS']
Time Complexity: O(n)
Auxiliary Space: O(n)
Method #3: Using map function + lambda function.
# Python3 code to demonstrate working of
# Conditional Uppercase by size
# using map function and lambda function
# Initializing list
test_list = ["Gfg", "is", "best", "for", "geeks"]
# Printing original list
print("The original list is : " + str(test_list))
# Initializing K
K = 3
# Using map and lambda function
res = list(map(lambda ele: ele.upper() if len(ele) > K else ele, test_list))
# Printing result
print("Modified Strings : " + str(res))
# This code is contributed by Edula Vinay Kumar Reddy
Output
The original list is : ['Gfg', 'is', 'best', 'for', 'geeks'] Modified Strings : ['Gfg', 'is', 'BEST', 'for', 'GEEKS']
Time Complexity: O(n)
Auxiliary Space: O(n)
Method #5: Using map() and a named helper function
- Define a named function 'conditional_uppercase' that takes a string as an input parameter
- Inside the function, check if the length of the string is greater than 'K'
- If yes, return the uppercase version of the string
- If no, return the original string.
- Initialize an empty list called 'res'
- Use map() function to apply the 'conditional_uppercase' function to each element of the 'test_list'
- Convert the map object to a list using the list() function and store it in 'res'
- Print the modified strings stored in 'res'
# Python3 code to demonstrate working of
# Conditional Uppercase by size
# Using map() and a named function
# initializing list
test_list = ["Gfg", "is", "best", "for", "geeks"]
# Printing original list
print("The original list is : " + str(test_list))
# initializing K
K = 3
# named function for conditional uppercase
def conditional_uppercase(ele):
return ele.upper() if len(ele) > K else ele
# Applying conditional_uppercase function to each element
# map function
res = list(map(conditional_uppercase, test_list))
# Printing the result
print("Modified Strings : " + str(res))
Output
The original list is : ['Gfg', 'is', 'best', 'for', 'geeks'] Modified Strings : ['Gfg', 'is', 'BEST', 'for', 'GEEKS']
Time complexity: O(n), where n is the number of elements in the 'test_list'
Auxiliary space: O(n), as we are storing the modified strings in a new list 'res'
Method #6: Using generator function
# Python3 code to demonstrate working of
# Conditional Uppercase by size
# Using a generator function
# Initializing list
test_list = ["Gfg", "is", "best", "for", "geeks"]
# Printing original list
print("The original list is : " + str(test_list))
# Initializing K
K = 3
# Generator function for conditional uppercase
def conditional_uppercase_generator(lst, k):
for ele in lst:
yield ele.upper() if len(ele) > k else ele
# Creating a generator object
gen = conditional_uppercase_generator(test_list, K)
# Converting generator object to list
res = list(gen)
# Printing the result
print("Modified Strings : " + str(res))
Output
The original list is : ['Gfg', 'is', 'best', 'for', 'geeks'] Modified Strings : ['Gfg', 'is', 'BEST', 'for', 'GEEKS']
Time complexity: O(n), since we need to iterate over all the elements in the list.
Auxiliary space: O(1) because we are not storing all the modified strings in a separate list. Instead, we generate them on-the-fly using the generator function.