×

Python Lexicographic Order

Python lexicographic order

Before we discuss the lexicographic order in Python, we should understandwhat is lexicographic order and sort according to lexicographic order.

Lexicographic order

In mathematics, the generalization of the alphabetical order of the dictionaries to sequences of ordered elements or, more generally, we can say that symbols of an ordered set are called the lexicographic order. Hence, lexicographic order is commonly known as dictionary order or lexical order.

Lexicographic order in Python

In Python, we sort alphabets, words, or strings according to many sorting orders to get the required sorted data in the output. We can sort all these data elements by lexicographic order as well, and we can also sort numbers & symbols with lexicographic order in Python.

In this tutorial, we will sort strings, numbers, words, and lists in lexical order. We will design a program for sorting each type and working of the program.

Sorting words in lexicographic order

As we have already mentioned that, the lexicographic order is also known as dictionary order. We will arrange words first by their first letter while sorting them according to lexicographic order. We can perform this sorting with two functions, i.e., sort() and sorted().

The only difference between these two functions is that sort() function changes the original array into a sorted array, whereas the sorted() function creates a new sorted array.

Now, look at the following examples:

Example 1: Sorting words in lexicographic order with sort() function:

 # Define an array with words
 Original_Array = ["Python", "Julia", "Go", "MATLAB", "SPSS", "R", "C"]
 # Printing original array
 print ("The original array: ",Original_Array)
 # sorting words in dictionary order
 Original_Array.sort()
 # printing original array after sorting
 print ("Sorted array: ",Original_Array) 

Output:

 The original array:  ['Python', 'Julia', 'Go', 'MATLAB', 'SPSS', 'R', 'C']
 Sorted array:  ['C', 'Go', 'Julia', 'MATLAB', 'Python', 'R', 'SPSS'] 

Example 2: Using sorted() function to sort words in lexicographic order:

 # Define an array with words
 Original_Array = ["Python", "Julia", "Go", "MATLAB", "SPSS", "R", "C"]
 # using sorted() function to sort words of array
 Sorted_Array = sorted(Original_Array)
 # printing sorted array
 print ("Sorted array: ",Sorted_Array)
 # now printing original array
 print ("The original array: ",Original_Array) 

Output:

 Sorted array:  ['C', 'Go', 'Julia', 'MATLAB', 'Python', 'R', 'SPSS']
 The original array:  ['Python', 'Julia', 'Go', 'MATLAB', 'SPSS', 'R', 'C'] 

We can see the difference in the working of both functions. When we use sorted() function, the original array remains unaffected, whereas when we are using sort() function, the original array itself changes into a sorted array.

Sorting a string with lexicographic order

In Python, sorting a string in lexicographic order is very similar to sorting words in the same order. However, when we use the lexicographic order on a string, the words present in the string changes into a dictionary or lexicographic order.

Here, we will use the split() function and then sort() function to sort the words of the string in lexicographic order and then print them in the output.

Look at the following example program:

Example – 1

 # Default lexical sorting function
 def LexicalSorting(Orig_str):
 # using split() function
     WordOfString = Orig_str.split()
 # using sort() function
     WordOfString.sort()
   # printing string in sorted words
     for a in WordOfString:
         print ( a )
 if __name__ == '__main__':
 # define a string
     Orig_str = "This is an example string to be sorted in the program"
 # Printing original string
     print ("Original string: ",Orig_str)
     # Calling out sorting function
     print ("Sorted string words: ")
     LexicalSorting(Orig_str) 

Output:

 Original string:  This is an example string to be sorted in the program
 Sorted string words:
 This
 an
 be
 example
 in
 is
 program
 sorted
 string
 the
 to 

Using lexicographic order to sort a given set of numbers

Now, we will sort a given set of numbers according to lexicographic order. If we have a given set of numbers, Let's say (1, 2, 5, 13), then it will be sorted as (1, 13, 2, 5) in lexicographic order.

In the following example, we will take lower and upper range of numbers from user and then we will sort these numbers in the lexicographical order:

 # default lexicographic sorting function
 def LexoSort(lef, righ):
     SortSet = []
     for a in range(lef, righ + 1):
         SortSet.append(str(a))
     SortSet.sort()
     answer = []
     for a in range(len(SortSet)):
         answer.append(int(SortSet[a]))
     for a in range(len(SortSet)):
         print (answer[a], end = " ") # printing sorted numbers
 if __name__ == "__main__":
     # taking ranges from user
     lef = int (input ("Enter the left range number for the range of numbers: "))
     righ = int (input ("Enter the left range number for the range of numbers: "))
     # calling out sorting function
     print ("Sorted numbers from the given range: ")
     LexoSort(lef, righ) 

Output:

 Enter the left range number for the range of numbers: 7
 Enter the left range number for the range of numbers: 31
 Sorted numbers from the given range:
 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 7 8 9 

Sorting Python lists in lexicographic order

When we use the lexicographical order on a given set of Python lists, the lists are printed sorted according to the dictionary order. Then they sort according to their length (element present in them).

We will use the following two methods to sort Python lists in lexicographic order:

Method 1: Using sort() function twice to sort lists:

 # initializing a group of lists 
 GroupofLists = [[1, 4, 3, 2, 7], [5, 4, 1, 3], [1, 4, 6, 7, 2, 6], [9, 8, 7], [1, 9, 3,.7]]
 # printing unsorted list
 print ("Unsorted lists : " + str(GroupofLists))
 # Sorting lists with sort() twice
 GroupofLists.sort()
 GroupofLists.sort(key = len)
 # printing sorted lists
 print ("Sorted lists after sorting them by dictionary order and their length " + str(GroupofLists)) 

Output:

 Unsorted lists : [[1, 4, 3, 2, 7], [5, 4, 1, 3], [1, 4, 6, 7, 2, 6], [9, 8, 7], [1, 9, 3, 0.7]]
 Sorted lists after sorting them by dictionary order and their length [[9, 8, 7], [1, 9, 3, 0.7], [5, 4, 1, 3], [1, 4, 3, 2, 7], [1, 4, 6, 7, 2, 6]] 

Method 2: Using lambda function to sort lists with lexicographic order:

 # initializing a group of lists 
 GroupofLists = [[1, 4, 3, 2, 7], [5, 4, 1, 3], [1, 4, 6, 7, 2, 6], [9, 8, 7], [1, 9, 3,.7]]
 # printing unsorted list
 print ("Unsorted lists : " + str(GroupofLists))
 # using lambda function to sort lists
 SortedLists = sorted(GroupofLists, key = lambda a: (len(a), a))
 # printing sorted lists
 print ("Sorted lists after sorting them by dictionary order and their length " + str(SortedLists)) 

Output:

 Unsorted lists : [[1, 4, 3, 2, 7], [5, 4, 1, 3], [1, 4, 6, 7, 2, 6], [9, 8, 7], [1, 9, 3, 0.7]]
 Sorted lists after sorting them by dictionary order and their length [[9, 8, 7], [1, 9, 3, 0.7], [5, 4, 1, 3], [1, 4, 3, 2, 7], [1, 4, 6, 7, 2, 6]] 

Related Topics

any() Keyword in python

“any” keyword in python This page contains all the information about any () Keyword in python, how it is used with lists, tuples, dictionaries, sets, and what its function is? Python...

3 minutes read.

Python Random shuffle( ) method

The shuffle() is used to change the positions of the elements in the mutable sequences. The shuffle( ) function will change the positions of the elements in the sequence of...

3 minutes read.

Python Encapsulation

What is meant by Encapsulation? The process of restricting access to the methods and variables so that accidental modification of data can be prevented is known as Encapsulation. The motive of Encapsulation:...

3 minutes read.

How to Concat two Dataframes in Python

Using Pandas dataframe, we can concat two dataframes or series in Python. So let's take a brief introduction to what is Pandas in Python. Pandas is a library typically used for...

7 minutes read.

Python Scikit-image | Image Processing Using Scikit-Image

What is Image Processing? The world is defined with images and, every image has its different specialties. An image can contain much-needed information that can be helpful in various ways. The process...

4 minutes read.

Check if a String is Empty in Python

The string is one of the data types of Python. This data type stores all kinds of data but all the characters must be enclosed using double quotes (""). In...

5 minutes read.

How to add 2 lists in Python?

In Python, a list is defined as a data structure that contains a sequence of elements. It can contain any kind of data type inside it but in order to concatenate two...

3 minutes read.

Python exe() function

Python exe() function The exec() function in Python executes the specified Python code and accepts large blocks of code. It supports dynamic execution of Python code where the object must be either a string...

1 minute read.

Working with files in Python

Python is an object-oriented high-level programming language. Python has dynamic semantics and has high-level built-in data structures which support dynamic typing and dynamic binding. Python provides rapid development. It has an...

5 minutes read.

YOLO Python

YOLO means you only look once.It is a technique to perform object detection is called YOLO. It is the algorithmused by the program to identify items in the image. Earlier detection...

4 minutes read.

Find Median of List in Python

The median is an enlightening measurement that is utilized as a proportion of the focal inclination of a circulation. It is equivalent to the centre worth of the conveyance. There...

3 minutes read.

Cx_Oracle Python with Example

Python Programming Language: Python programming language is one of the most used programming languages, as it is used widely in the field of software and data analysis, web development, etc. It...

6 minutes read.

List Iteration in Python

In this tutorial, we will learn how to iterate list in Python. List in Python A list is an ordered group of values which includes several kinds of values.A list is a mutable...

3 minutes read.

Python String upper() method

Python String upper() method The string.upper() method in Python returns a copy of the string converted to uppercase. Syntax string.upper() Parameter NA Return This method returns a copy of the string converted to uppercase. Example 1 # Python...

1 minute read.

Loan calculator using Tkinter in Python

Tkinter: Tkinter, part of all common Python distributions, is the de facto method for creating Graphical User Interfaces (GUIs) in Python. The only framework included in the Python standard library is...

4 minutes read.

Falcon Python

Introduction of Python Python is the fastest and the smartest programming language and it is an object oriented language. Python has libraries that can be importedeasily and perform many operations; to...

3 minutes read.

Python len() function

Python len() function The len() function in Python  returns the number of items in an object. Syntax len(s) Parameter s: This parameter represents a sequence (such as a string, bytes, tuple, list, or range) or...

1 minute read.

GET and POST requests using Python

‘GET’ and ‘POST’ are two request methods of Hypertext Transfer Protocol (HTTP). What is HTTP? HTTP stands for Hypertext Transfer Protocol. It is a collection of protocols which makes communication between client...

4 minutes read.

What is Collaborative Filtering in ML, Python

Introduction Contents recommendation is a useful tactic for almost any specific technology looking to increase interest, but it frequently calls for a lot of user data and perhaps laborious content tagging...

3 minutes read.

Unicode to String in Python

Python Python is an interactive and more accessible language than any other programming language. The python programming language uses a variety of libraries to perform the operations in a faster way....

3 minutes read.