×

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

Python frozenset()

Python frozenset() class The frozenset() class in Python returns a new frozenset object, optionally with elements taken from iterable. Syntax class frozenset([iterable]) Parameter iterable: This parameter represents an iterable object, like list, set, tuple etc. Return This class returns an unchangeable...

1 minute read.

Python Console

Console in Python is referred as the command line Interpreter- (CLI) and also knows as Shell and it functions as taking input from the human user and interpreting it through...

6 minutes read.

How to Install Python

Python Installation Guide Step by Step Installing Python is quite simple and easy. In this tutorial, we will show stepwise procedure to install Python and set up the Python environment in different...

2 minutes read.

Merge Sort using Python

Merge Sort is a technique that is used for sorting elements in an array using a special method known as divide and conquer. It is the best example of the...

5 minutes read.

How to Install PIP In Python

How to Install PIP In Python The libraries for Python have made our work easier than we expected. From a simple addition of two numbers to applying algorithms on the big...

4 minutes read.

How to Configure Python Interpreter in Eclipse

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.

Python Program to Print Sum of all Elements in an Array

Python program to print sum of all elements in an array A set of objects stored in contiguous memory locations is referred to as an array. The concept is to keep...

2 minutes read.

How to Iterate a List in Python

As we know, a List is one of the four unique data structures available in Python; in this article, we will deep dive into understanding iterating through a list and...

3 minutes read.

What is Python compiler GDB?

The source code of one programming language is converted into machine code, bytecode, or another programming language by a compiler, a specialised software. A compiler is a tool that converts high-level...

3 minutes read.

Python Logical Operators

In python, there are many operators which we use in our program. Operators are used in manipulating a particular value or operand. Logical operators are used mainly to evaluate an...

7 minutes read.

Programs for Printing Pyramid Patterns in Python

<!-- wp:paragraph --><p>Python supports printing patterns using basic for loops. The number of rows is handled by the first outer loop, while the number of columns is handled by the...

9 minutes read.

Excel Automation with Python

Data analysis is the upcoming technology in the IT sector; this data analysis can be performed easily with the help of data frames or by using excel sheets. The data...

4 minutes read.

Python If-else statement

In real life, there are situations where we have to make decisions for a particular circumstance and based on those decisions, and we plan our next move. The same thing...

4 minutes read.

Algorithm for Factorial of a number in Python

What is a Factorial Number? In mathematics, the factorial of a positive integer n, denoted by n!. It is the product of all positive integers less than or equal to n. For...

3 minutes read.

Python Compiler

What is Compiler? The compiler is mainly a program used to convert the source code into the machine or binary code. The source code is generally a computer program written using...

6 minutes read.

Python program to find the area of a circle

Python program to find the area of a circle This article will discuss how to find the area of a circle in Python with a given radius. The area of a...

2 minutes read.

Python Image Processing

What is an Image? Images are the pictures that will define the world, and it has their own story, and consists of information about them and these are useful in many...

9 minutes read.

How to Define a Function in Python?

What is a Function? In programming, a piece of code that executes a specific task or a group of related operations is known as a function. What does Python Functions Do? If you...

6 minutes read.

Python any() Function

Python any() Function The any() function in Python returns a boolean value ‘True’ if any element of the iterable is true or if the iterable is empty, else it returns False. Syntax any(iterable) Parameter Iterable: An iterable object (list, tuple, dictionary) Return This...

1 minute read.

Python Stack

Python Stack: The work Stack is defined as arranging a pile of objects or items on top of another. It is the same method of allocating memory in the stack...

10 minutes read.