The most frequent interview question asked in interviews is how do you reverse a string/list/number! There are many techniques and approaches to reverse a string or list in python 3+. We will discuss about each of these methods in this post. Starting with the traditional approach of using loops such as for/ while loop to inbuilt functions available in Python 3+.
Method 1: Reverse a String/List/Number Using Loop Method
Using method 1, we can reverse values using loops method. Loops iterate over a sequence (either a list, a tuple, a dictionary, a set, or a string) until end of the sequence.
#Reverse a String using for loop def revstr(string): rev = "" for i in string: rev = i + rev return rev print(revstr("DSFOR")) # Reverse a List using while loop def revlist(lists): n = len(lists)-1 newlist = [] while n >= 0: newlist.append(lists[n]) n -= 1 return newlist print(revlist(["python","is","cool"])) #Reverse a Number using while loop (Maths way) def revnum(number): rev = 0 while number > 0: reminder = number%10 rev = rev*10 + reminder number = number // 10 return rev print(revnum(12345))
ROFSD
[‘cool’, ‘is’, ‘python’]
54321
Method 2: Reverse a List / String / Number using Slicing Technique in Python.
In Method 2, we use the slicing method to reverse the string. Using the Slice technique in python is one of the fastest methods to deal with time complexity.
# slicing string in reverse order def revstr(string): string = string[::-1] return string print(revstr("DSFOR")) # slicing list in reverse order def revlist(lists): lists = lists[::-1] return lists print(revlist(["python","is","cool"])) # slicing number in reverse order def revnum(number): number = str(number)[::-1] return number print(revnum(12345))
ROFSD
[‘cool’, ‘is’, ‘python’]
54321
Method 3: Using Python In-built library functions to reverse text or integer values
Method 3: In Method 3, we will discuss how to reverse string, list or number using inbuilt python functions. Using inbuilt functions, it saves lots of time in development. To deal with integers or numbers first, convert the numbers to string or list and then convert back to int again. Integers are not iterable in nature as it holds only one value.
# reverse string using inbuilt list function def revstr(string): string = "".join(reversed(string)) return string print(revstr("DSFOR")) # reverse list using inbuilt list function def revlist(lists): lists.reverse() return lists print(revlist([11,4,12,8,3,6])) # reverse number using inbuilt list function def revnum(number): number = "".join(reversed(str(number))) return number print(revnum(123456))
ROFSD
[6, 3, 8, 12, 4, 11]
654321
The text or number manipulation can also be done using other inbuilt libraries or stack concepts. However, when dealing with such problem statements we should make sure that the time complexity should be less. Among all the 3 methods discussed above, the time complexity for the slicing method is quickest and fastest.
Read More: Data Cleaning Methods for NLP – Python